|
java初学之排序——选择排序
Java私塾跟我学系列——JAVA篇 网址:www.javass.cn
基本思路:从所有元素中选择一个最小元素 a放在 a[0](即让最小元素 a与 a[0]交换),作为第一轮;第二轮是从 a[1]开始到最后的各个元素中选择一个最小元素,放在 a[1]中;……依次类推。n 个数要进行(n-1)轮。比较的次数与冒泡法一样多,但是在每一轮中只进行一次交换,比冒泡法的交换次数少,相对于冒泡法效率高。
示例如下:
- public class Test {
- public static void main(String[] args) {
- //需要排序的数组,目前是按照升序排列的
- int a[] = new int[5];
- a[0] = 3;
- a[1] = 4;
- a[2] = 1;
- a[3] = 5;
- a[4] = 2;
- //选择法排序
- int temp;
- for (int i = 0; ia.length; i++) {
- int lowIndex = i;
- //找出最小的一个的索引
- for (int j=i+1;ja.length;j++) {
- if (a[j] a[lowIndex]) {
- lowIndex = j;
- }
- }
- //交换
- temp=a;
- a=a[lowIndex];
- a[lowIndex]=temp;
- }
- //检测一下排序的结果
- for(int i a){
- System.out.println(i=+i);
- }
- }
- }
复制代码 运行结果:
i=1
i=2
i=3
i=4
i=5
如果你想要按照降序排列,很简单,只需要把: if (a[j] a[lowIndex])这句话修改成:if (a[j] a[lowIndex])就可以了。
|
|