直接插入排序的原理:将数组分为有序的数组和无序的数组两个,在无需的数组中挑出一个数插入到已经有序的数组中
直接插入排序的实现思路:程序开始可以将数组的第一个位置的数作为有序的数组,之后再将后面的数组元素与有序的数组一一比较,选择合适的位置插入。
直接插入排序特点:对于已经有序的数组元素来说,效率很高,因为直接插入排序可以知道当前数组是否有序。
算法实现:
package sort; /** * 插入排序(稳定排序) * 思想:让当前元素跟他之前的元素一一比较 * 若小于前面的元素就插入到前面元素的位置 * 优点:对于基本有序的数组 * 插入排序很快 * 缺点:对于杂乱无章的数组 * 插入排序很慢 * */ public class insertSort { public static void insert_sort(int[] a){ for(int i = 1;i<a.length;i++){ int temp = a[i]; for(int j = i-1;j>=0;j--){ if(temp<a[j]){ a[j+1] = a[j]; a[j] = temp; } } } } public static void main(String[] args) { int[] a = {5,4,3,2,1,0}; long l = System.currentTimeMillis(); insertSort.insert_sort(a); long end = System.currentTimeMillis(); for(int i = 0 ; i<a.length;i++){ System.out.println(a[i]); } System.out.println("用时:"+String.valueOf(end-l)); } }