您好,登錄后才能下訂單哦!
* 插入排序
* @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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。