插入排序、快速排序
* 插入排序 * @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); }
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。