3:插入排序
插入排序思想描述:
1、数组0到0位置,只有1个数,必定有序
2、数组0~1位置,盯着1位置的数,往左看:如果arr[1]>arr[0]停止。否则arr[0]与arr[1]交换,
再看arr[0]的左边有没有数,没数了停止。此时0~1位置上数有序。
3、数组0~2位置,盯着2位置的数,往左看:如果arr[2]>arr[1]停止。否则arr[2]与arr[1]交换,
再看arr[1]的左边有没有数,没数了停止;有数,比较arr[0]与arr[1],如果arr[1]>arr[0]停止。
否则arr[0]与arr[1]交换,再看arr[0]的左边有没有数,没数了停止。此时0~2位置上数有序。
...........................
4、直到0~N-1位 1 public static void insertionSort(int[] arr) { 2 if (arr == null || arr.length < 2) {
1 public static void insertionSort(int[] arr) { 2 if (arr == null || arr.length < 2) { 3 return; 4 } 5 // 不只1个数 6 for (int i = 1; i < arr.length; i++) { // 0 ~ i 做到有序 7 for (int j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--) { //注意这个j,每次都是i位置的左边一个数 8 swap(arr, j, j + 1); 9 } 10 } 11 }
标签:arr,int,插入排序,位置,length,停止 来源: https://www.cnblogs.com/yzmarcus/p/16215590.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。