七大排序算法
排序 内部排序 插入排序 直接插入排序 希尔排序 选择排序 简单选择排序 堆排序 交换排序 冒泡排序 快速排序 直接插入排序 给定一组序列,假定第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依此将当前处理的记录插入到其之前的有序序列中,直到最后一个记录插入到有序序列中为止 public static void insertSort(int arr[]){ // 1. 假设第一个序列的第一个元素是有序的 // 38,73,27,79,19,76 if(arr == null || arr.length ==0){ return ; } int j = 0; // 2. 设置一个下标,从1开始(从第二个元素开始) for(int i = 1;i<arr.length;i++){ // 当前元素和前一个比较 int temp = arr[i]; j = i; if(temp < arr[j=1]){ // 前一个比当前的大,则将当前元素放到合适的位置 // 此处要找出当前元素合适的位置,同时把前面的元素向后移动 do{ arr[j] = arr[j-1]; j--; }while(arr[j]>temp && j>=1); arr[j] = temp; } } } 排序前: 38 65 97 76 13 27 49 排序后: 13 27 38 49