代码:
package com.vgbh;
public class SelectSorting {
private static int n = 10 ;//数组长度
private static int[] arr = new int[n] ;//数组
static PublicOut pc = null ;//定义外部对象
public static void main(String args[]) {
pc = new PublicOut();
pc.data(arr,n);
pc.prin(arr,n);
SelectSorting ss = new SelectSorting();
ss.selectOrder(arr);
pc.prin(arr, n);
}
/*
* 第一趟,从n个元素中找出关键字最小的元素与第一个元素交换;
* 第二趟,在从第二个元素开始的n-1个元素中再选出关键字最小的元素与第二个元素交换;
* 如此,第k趟,则从第k个元素开始的n-k+1个元素中选出关键字最小的元素与第k个元素交换,
* 直到整个序列按关键字有序。选择排序是不稳定的排序方法。
*/
public void selectOrder (int arr[]) {
int min ;
for (int x=0;x<arr.length-1;x++) {
min = x;
for (int y=x+1;y<arr.length;y++) {
if (arr[y] < arr[min]) min = y ;
if (min != x) pc.change(arr, min, x);
}
}
}
}
选择排序其实很简单,要理解的话建议在纸上亲自演算一遍计算的流程,相信你会有发现。
有问题可以联系我的邮箱。