`
Phile.net
  • 浏览: 26936 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

排序——插入排序

阅读更多

基础是很重要的,在这里将各种排序方式归纳总结:

1,插入排序:

import java.util.ArrayList;
import java.util.Random;
//插入排序一组自动生成的数据
//JAVA类实现序例化的方法是实现java.io.Serializable接口 
//Collection框架中实现比较要实现Comparable 接口和 Comparator 接口

public class InserSort {

	/**
	 * @param args
	 */
	ArrayList<Integer> al;
//生成数据集合,带参数的,可以重写
	public InserSort(int num,int mod){
		System.out.print("InserSort...................\n");
		al = new ArrayList<Integer>(num);
		Random rand = new Random();
		System.out.print("The ArrayList Sort Before:\n");
		for(int i=0;i<num;i++){
			al.add(new Integer(Math.abs(rand.nextInt())%mod+1));
			System.out.println("al["+i+"]="+al.get(i));
		}
	}
	//插入排序的方法
	public void SortIt(){
		System.out.print("SortIt\n...................\n");
		System.out.println("原集合:"+al.toString());
		Integer tempInt;
		int MaxSize = 1;
		for(int i=1;i<al.size();i++){
			System.out.print("i="+i+":");
			tempInt = (Integer) al.remove(i);
			if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue()){
				al.add(MaxSize,tempInt);
				MaxSize++;
				System.out.println(al.toString());
			}else{
				for(int j=0;j<MaxSize;j++){
					System.out.print("j="+j+":");
					if(((Integer)al.get(j)).intValue()>tempInt.intValue()){
						al.add(j,tempInt);
						MaxSize++;
						System.out.println(al.toString());
						break;
					}
				}
			}
		}
		System.out.println("The ArrayList Sort After:");
		for(int i=0;i<al.size();i++){
			System.out.println("al["+i+"]="+al.get(i));
		}
	}
	public static void main(String[] args) {
		//实例化InserSort类,生成数据集合
		InserSort is = new InserSort(50, 100);
		//通过InserSort类的SortIt方法将集合中的数据进行排序
		is.SortIt();
		

	}

}

 

分享到:
评论

相关推荐

    算法可视化系列——排序算法——插入排序

    **插入排序**是一种基础且直观的排序算法,它的工作原理类似于我们手动整理扑克牌的过程。在本系列的“算法可视化”中,我们将深入探讨插入排序的实现及其在实际编程中的应用。 **一、插入排序的基本概念** 插入...

    排序——冒泡排序,直接排序,反转排序

    这里我们将深入探讨三种常见的排序算法:冒泡排序、直接排序(也称为插入排序)以及反转排序。这些算法虽然简单,但在理解排序原理和优化算法性能方面具有重要意义。 1. 冒泡排序: 冒泡排序是最基础的排序算法之一...

    合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序的C语言实现

    本文将详细讲解六种经典的排序算法——合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合提供的文件名(sort.c、set.c、main.c、set.h、sort.h)推测出每个文件可能包含的代码实现。 1. **合并...

    希尔-归并排序——模板类

    希尔排序是一种基于插入排序的快速排序算法,由Donald Shell在1959年提出。它通过将待排序的数组元素按某个增量分组,然后对每组进行直接插入排序,随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,...

    数据结构——排序——内部排序

    它是基于直接插入排序的,但是将记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 **代码实现**: ```...

    java算法——插入排序

    插入排序: * 始终定义第一个元素为有序, 将无序元素 * 逐个插入到有序排列之中,不断的移动数据, * 空出一个适当的位置,把待插入的元素放到里 * 面去。

    简单的单链表排序 —— 学生管理程序

    在链表排序中,我们通常采用两种主要的排序算法:插入排序和归并排序。这里我们将以简单的插入排序为例,介绍如何对单链表进行排序。 **插入排序**的基本思想是将未排序的元素逐个插入到已排序的部分,从而保持已...

    排序——数据结构

    - 插入排序、选择排序和堆排序为O(1),是原地排序算法。 - 快速排序和归并排序需要额外的空间,分别为O(log n)和O(n)。 - 基数排序需要O(n + k)的额外空间。 - **稳定性**: - 插入排序、归并排序和基数排序是...

    内部排序的方法——半插入排序

    半插入排序,也称为二分插入排序,是一种在内部排序领域广泛应用的算法,尤其适用于小规模或部分有序的数据集。这种排序方法结合了直接插入排序的简单性和二分查找的效率,通过减少比较次数来提高排序性能。以下是半...

    C++ 排序插入排序实例详解

    排序——插入排序 插入排序的基本思想是每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。常见的插入排序有插入排序(Insertion Sort),希尔排序...

    插入排序 减治法——C语言代码

    总的来说,"插入排序 减治法——C语言代码"是一个学习和实践C语言基础排序算法的好例子,通过阅读和理解这段代码,你可以深入理解插入排序的工作原理,以及如何用C语言来实现它。同时,也可以探讨如何将问题解决策略...

    面向对象——排序

    本项目聚焦于面向对象编程中的一个重要应用——排序,通过设计一个程序包来实现多种排序算法,包括插入排序、冒泡排序和快速排序。下面我们将详细探讨这些排序算法。 1. **插入排序**: 插入排序是一种简单直观的...

    十大经典排序——java实现(csdn)————程序.pdf

    插入排序的特点是运行时间与输入情况有关,对于一个部分有序(数组中元素离最终位置都不远,或者一个有序的大数组加一个小数组)来说速度比较快。其时间复杂度为O(n²),空间复杂度为O(1),稳定排序,原地排序。使用...

    常用排序算法——冒泡 选择 插入 快速

    常用的排序算法有冒泡排序、选择排序、插入排序、快速排序等。 一、插入排序(Insertion Sort) 插入排序是一种简单的排序算法。其基本思想是每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置...

    快速排序——C语言代码

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer...此外,对于小规模数组,可以考虑使用插入排序,因为快速排序在小数组上可能不如插入排序快。

    算法可视化系列——排序算法——希尔排序

    希尔排序(Shell Sort)是一种基于插入排序的快速排序方法,由Donald Shell于1959年提出。它的主要思想是将待排序的数据按照一定的间隔进行分组,然后对每组进行插入排序,随着间隔逐渐缩小,最后进行一次全排列,...

    简单插入排序 递归法——C语言代码

    在"简单插入排序 递归法——C语言代码"这个项目中,我们将看到如何使用C语言实现一个递归版本的插入排序。C语言是一种强大的、低级别的编程语言,常用于系统编程、嵌入式开发和高性能计算等领域。它的语法简洁明了,...

    排序算法——冒泡,选择,插入,堆

    在本主题中,我们将深入探讨四种经典的排序算法:冒泡排序、选择排序、插入排序和堆排序。这些算法虽然简单,但理解它们的原理对于优化代码性能和提升编程技能非常有帮助。 首先,我们来讨论冒泡排序。冒泡排序是一...

    内部排序的程序 ,直接插入排序,简单选择排序,冒泡排序!

    接插入排序,简单选择排序,冒泡排序接插入排序,简单选择排序,冒泡排序接插入排序,简单选择排序,冒泡排序接插入排序,简单选择排序,冒泡排序接插入排序,简单选择排序,冒泡排序大家看看!!

Global site tag (gtag.js) - Google Analytics