* 插入排序
* @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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。