java核心技术之直接选择排序算法

这里写图片描述

基本思想

直接选择排序是选择排序的一种,其排序速度比冒泡排序要快一些,是常用的排序算法之一。
其基本思想是的将指定排序位置与其他数组元素分别比较,如果满足条件就交换元素值。注意,这里与冒泡排序的区别是不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换,这样排序好的位置逐渐扩大,最后整个数组都成为已排序好的数组。

算法示例

每一趟从待排序的数组元素中选出最小的或最大的一个元素,顺序放在已排序好的数列的最后,直到全部待排序的数据元素排完。

如:
初始数组【5,14,9,2,11】

第一趟排序后:【 5 ,11 ,9 ,2 】,14
第二趟排序后:【 5 ,2,9 】,11 ,14
第三趟排序后:【 5 ,2】,9 ,11 ,14
第四趟排序后: 2 ,5,9 ,11 ,14

程序实现

SelectSort.java

public class SelectSort {

    public static int[] run(int[] array) {

        for (int i = 0; i < array.length-1; i++) {
            int index = 0;
            for (int j = 0; j < array.length-i; j++) {
                if (array[j] > array[index]) {
                    index = j;
                }
            }

            int temp = array[array.length-1-i];
            array[array.length-1-i] = array[index];
            array[index] = temp;
        }

        return array;
    }

    public static void printInfo(int[] array) {
        // TODO Auto-generated method stub
        for(int k=0;k<array.length;k++){
            System.out.print(" "+array[k]);
        }
        System.out.print("\n");
    }

}

clent.java

public class clent {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] array ={5,14,9,2,11};     
        System.out.print("排序前的数组为:\n");
        SelectSort.printInfo(array);

        //直接选择排序
        array = SelectSort.run(array);

        System.out.print("排序后的数组为:\n");
        SelectSort.printInfo(array);
    }
}

运行结果:

排序前的数组为:
 5 14 9 2 11
排序后的数组为:
 2 5 9 11 14
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hfreeman2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值