选择排序:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换。
思想:每次从未排序的队列中选出最小的和此未排序队列最前面的进行交换。即最开始假设第一个最小,此时min = i = 0,依次拿后面的数与第一个进行比较,当发现a[j]小于a[min]时,让min = j,遍历一遍后,如果i != min,将a[i] 和 a[min]交换。此时,第一个数是有序的,后面是无序即未排序的,i++,min = i ...
代码:
public class Selectionsort {
public static void main(String[] args) {
int arr[] = {6,9,13,6,17,3,8,64,12};
print(arr); // 6,9,13,6,17,3,8,64,12
quicksort(arr);
print(arr); // 3,6,6,8,9,12,13,17,64
}
static void quicksort(int arr[]){
int temp,min;
for(int i = 0;i < arr.length-1;i ++){
min = i;
for(int j = i+1;j < arr.length;j ++){
if(arr[min] > arr[j])
min = j;
}
if(i != min){
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
}
static void print(int arr[]){
for(int i = 0;i < arr.length - 1;i ++){
System.out.print(arr[i] + ",");
}
System.out.println(arr[arr.length -1]);
}
}