简单选择排序法

来源:互联网 发布:新浪网络猫耳宝贝 编辑:程序博客网 时间:2024/05/17 23:37

简单选择排序概念:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。

思路就在概念中:我们下面给出代码(仅供参考):

package javastudy;

public class Testit8 {
    // 选择排序法
    public static void main(String[] args) {
        int[] numbers = { 49, 27, 65, 97, 76, 12, 38 };
        int n = numbers.length;
        for (int i = 0; i <= n - 2; i++) {//n个数字只需要跑n-1趟即可排好序
            int min = numbers[i];
            for (int j = i + 1; j <= n - 1; j++)// 最后一个数字为n-1 因为第一个数字为0
            {
                if (min > numbers[j]) {
                    min = numbers[j];  
                }
            }
            //判断一下最小的数出现在是什么位置
            int j;
            for (j = i; j <= n - 1; j++) {
                if (numbers[j] == min) {
                    break;
                }
            }
            if (j > i) {//这个判断条件是为了避免开头的数字为0的情况
                //是在i跟后面找的,所以j应该是大于i
                int temp = numbers[i];
                numbers[i] = numbers[j];//j位置数字最小 ,交换位置
                numbers[j] = temp;
            }

        }
        for (int i = 0; i <= n - 1; i++) {
            System.out.print(numbers[i] + "\t");
        }

    }

}

输出结果样例:12    27    38    49    65    76    97   



0 0
原创粉丝点击