插入排序、快速排序
* 插入排序
* @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);
}
文章标题:插入排序、快速排序
标题来源:http://pwwzsj.com/article/jchpid.html