* 插入排序 * @param list * @return */ public int[] insertSort(int[] list) { //先默认下标为0的已经是有序的 for(int i = 1; i < list.length ; i++) { //准备插入的数据 int insertVal = list[i]; //待比较的下标 int insertIndex = i - 1; //如果满足条件,说明位置还没有找到 while(insertIndex >= 0 && insertVal < list[insertIndex]) { list[insertIndex+1] = list[insertIndex]; insertIndex--; } list[insertIndex+1] = insertVal; } return list; } /** * 快速排序 * @param list * @return */ public void quickSrot(int left, int right, int[] list) { int l = left; int r = right; int pivot = list[(int)(left + right) / 2]; int temp = 0; while(l < r) { while(list[l] < pivot) l++; while(list[r] > pivot) r--; if(l > r) break; temp = list[l]; list[l] = list[r]; list[r] = temp; } if(l == r) { l++; r--; } if(left < r) quickSrot(left, r , list); if(right > l) quickSrot(l, right, list); }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。