java编程之选择排序法

来源:互联网 发布:网络设计好学吗 编辑:程序博客网 时间:2024/06/09 14:15

java编程之选择排序法

今天对以前学的数组拿过来又看了一下,以前在学习排序的时候有些东西一知半解,温故而知新嘛,于是在这里拿出来再加深一遍,把方法分享给大家。
  • 话不多说,直接上代码

代码块

package november27;
public class TestArray {

public static void main(String[] args) {    int[] a = { 9, 8, 2, 5, 1, 3, };    print(a);//打印未排序的数组    selectSort(a);//对数组进行排序    print(a);//打印排序完之后的数组}// 定义选择排序法打印数组public static void selectSort(int[] a) {    for (int i = 0; i < a.length; i++) {        for (int j = i + 1; j < a.length; j++) {            int temp;            if (a[j] < a[i]) {                temp = a[j];                a[j] = a[i];                a[i] = temp;            }        }    }}//定义一个将数组打印出来的方法public static void print(int[] a) {    for (int i = 0; i < a.length; i++) {        System.out.print(a[i] + " ");    }    System.out.println();//换行}

}

解释

for (int i = 0; i < a.length; i++) {
for (int j = i + 1; j < a.length; j++) {
int temp;
if (a[j] < a[i]) {
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
初始序列:{9 8 2 5 1 3 }
假设前面的数比后面的数大,如果假设成立则互换位置。
每一轮下来选出一个最小的,放在最前面。
a[i]>a[j]
i=0
j=1 > 8 9 2 5 1 3
j=2 > 2 9 8 5 1 3
j=3 > 2 9 8 5 1 3
j=4 > 1 9 8 5 2 3
j=5 > 1 9 8 5 2 3
i=1
j=2 > 1 8 9 5 2 3
j=3 > 1 5 9 8 2 3
j=4 > 1 2 9 8 5 3
j=5 > 1 2 9 8 5 3
i=2
j=3 > 1 2 8 9 5 3
j=4 > 1 2 5 9 8 3
j=5 > 1 2 3 9 8 5
i=3
j=4 > 1 2 3 8 9 5
j=5 > 1 2 3 5 9 8
i=4
j=5 > 1 2 3 5 8 9
第4轮循环即可排列出顺序,重点的一个就是每一轮循环总是选出最小的数,这是关键。

0 0
原创粉丝点击