用JAVA实现快速排序与选择排序
快速排序
public class quicksort {
public static void quickSort(int[] array,int small,int big) {
int i,j,temp,middle;
// 基线条件
if(small > big){
return;
}
i = small;
j = big;
middle = array[small];
while(i < j){
//从右边比较,找出小于middle的一个数
while(i < j && array[j] >= middle){
j--;
}
//从左边比较,找出大于middle的一个数
while(i < j && array[i] <= middle){
i++;
}
//交换并重复,保证一边大于middle一边小于middle
if (i < j){
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
//交换基准(middle)和i=j时的数组中位数
//这样就可以确定middle的准确位置
array[small] = array[i];
array[i] = middle;
//递归调用函数
quickSort(array, small, j-1);
quickSort(array, j+1, big);
}
public static void main(String[] args) {
int[] arr = {9,7,2,4,6,8,10};
quickSort(arr, 0, arr.length-1);
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
}
}
选择排序
public class selectsort {
public static void selectSort(int[] arr){
// 数组的第一个值
int up;
// 移动比较大小的指针
int down;
// 交换用的temp值
int temp = 0;
for(int i=0; i arr[down])
up = down;
}
temp = arr[i];
arr[i] = arr[up];
arr[up] = temp;
}
}
public static void main(String[] args) {
int[] array = {8,3,6,7,1,0,2};
selectSort(array);
for(int i : array){
System.out.println(i);
}
}
}