经典排序之插入排序

插入排序的思想很简单,就是每向有序序列中插入一个数,就把这个数依次与其他数比较,逐次替换。

下面是代码

public class InsertSort {

	public void insertSort(int a[]){
    	int length=a.length;
    	int i;
    	int keyword;
    	for(int j=1;j<length;j++){
    		keyword=a[j];
    		i=j-1;
    		while(i>=0 && a[i]>keyword){
    			a[i+1]=a[i];
    			i--;
    		}
    		a[i+1]=keyword;
    		System.out.println(Arrays.toString(a));
    	}
    }

	public static void main(String[] args){
		int a[]={6,3,4,2,1,5};
		InsertSort insertSort=new InsertSort();
		insertSort.insertSort(a);
		/*for(int i=0;i<a.length;i++){
			System.out.println(a[i]);
		}*/

		/*Random random=new Random();
		int[] a=new int[10000];
		for(int i=0;i<a.length;i++){
			a[i]=random.nextInt(10000);
		}

		InsertSort insertSort=new InsertSort();
		long startTime=System.currentTimeMillis();
		insertSort.insertSort(a);
		long endTime=System.currentTimeMillis();
	    System.out.println("程序运行时间: "+(endTime-startTime)+"ms");
	    for(int i=0;i<a.length;i++){
			System.out.println(a[i]);
		}*/
	}
}

代码很简单,我就不多说什么了。

下面是序列

[3, 6, 4, 2, 1, 5]
[3, 4, 6, 2, 1, 5]
[2, 3, 4, 6, 1, 5]
[1, 2, 3, 4, 6, 5]
[1, 2, 3, 4, 5, 6]
时间: 2024-12-29 04:35:08

经典排序之插入排序的相关文章

经典排序算法 – 插入排序Insertion sort

经典排序算法 – 插入排序Insertion sort  插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕. 插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行.   图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入. 以下代码仅供参考,欢迎指正 /// <summary> /// 插入排序 /// </summary> /// <param na

经典排序算法——插入排序

对于一个int数组,请编写一个插入排序算法,对数组元素排序. 给定一个int数组A及数组的大小n,请返回排序后的数组. 测试样例: 输入数组:[1,2,3,5,2,3],6 输出数组:[1,2,2,3,3,5] class InsertionSort { public: int* insertionSort(int* A, int n) { // write code here for(int i=1;i<n;++i) { int insertNum=A[i];//待插入元素 int j=i;

经典排序算法

经典排序算法(via  kkun) 经典排序算法,以下文章参考了大量网上的资料,大部分都给出了出处 这一系列重点在理解,所以例子什么的都是最简单的情况,难免失误之处,多指教 大多数排序算法都给出了每一步的状态,以方便初学者更容易理解,通俗易懂,部分难以理解的排序算法则给出了大量的图示,也算是一个特色吧 经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort 经典排序算法 -  插入排序Insertion sort 经典排序算法 - 基数排序Radix so

【转】经典排序算法

地址:http://www.cnblogs.com/kkun/archive/2011/11/23/2260312.html 大多数排序算法都给出了每一步的状态,以方便初学者更容易理解,通俗易懂,部分难以理解的排序算法则给出了大量的图示,也算是一个特色吧 经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort 经典排序算法 -  插入排序Insertion sort 经典排序算法 - 基数排序Radix sort 经典排序算法 - 鸽巢排序Pigeonho

经典排序算法【转】

转自 还有多少青春可以挥霍 经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort 经典排序算法 -  插入排序Insertion sort 经典排序算法 - 基数排序Radix sort 经典排序算法 - 鸽巢排序Pigeonhole sort 经典排序算法 - 归并排序Merge sort 经典排序算法 - 冒泡排序Bubble sort 经典排序算法 - 选择排序Selection sort 经典排序算法 - 鸡尾酒排序Cocktail sort 经

[经典排序算法][集锦]

http://www.cnblogs.com/kkun/archive/2011/11/23/2260312.html 经典排序算法 经典排序算法,以下文章参考了大量网上的资料,大部分都给出了出处 这一系列重点在理解,所以例子什么的都是最简单的情况,难免失误之处,多指教 大多数排序算法都给出了每一步的状态,以方便初学者更容易理解,通俗易懂,部分难以理解的排序算法则给出了大量的图示,也算是一个特色吧 经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort 经

经典排序之选择排序

选择排序(SelectionSort)的算法思想:对于n个待排序的数组,进行n-1次排序,每次选出待排序数据集中的最小数(或最大数),然后将选出的最小数(或最大数)与当前待排序数据集的首个数交换:以此类推,直到排序结束,整个待排序数组也成为有序数组. 之所以称为选择排序,意为每次选出最小或最大的数,从而完成排序. 我接下来通过 代码演示: /** * 选择排序 * @author 李章勇 */ import java.util.Arrays; public class Demo1 { stati

实例365(15)--------------经典排序----插入排序法

前言:此代码设计的比较简洁,可能不太容易理解,插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕. 一:截图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.

C#实现所有经典排序算法

C# 实现所有经典排序算法 1 .选择排序 选择排序 原理: 选择排序是从冒泡排序演化而来的,每一轮比较得出最小的那个值,然后依次和每轮比较的第一个值进行交换. 目的:按从小到大排序. 方法:假设存在数组:72, 54, 59, 30, 31, 78, 2, 77, 82, 72 第一轮依次比较相邻两个元素,将最小的一个元素的索引和值记录下来,然后和第一个元素进行交换. 如上面的数组中,首先比较的是72,54,记录比较小的索引是54的索引1.接着比较54和59,比较小的索引还是1.直到最后得到最