美文网首页
简单选择排序

简单选择排序

作者: 吕建雄 | 来源:发表于2020-01-16 08:52 被阅读0次

class SelectSort {

/*

说明:备注中的n,表示数组的长度

简单排序原理:

每一趟从待排序的数组中选出最小值,顺序放在已排好序的序列后面

n(n-1)/2次比较(比较次数与数组的初始排序无关)

交换次数:

如果原始数组为正序,那么交换次数为0(最少)

如果原始数组为反序,那么交换次数为3*n*(n-1)/2 次(最多)i

综合的时间复杂度与比较次数和交换次数有关, O(n²)

*/

    public static void main(String argv[]){

        int[] arr = {5,9,2,7,3,4};

        System.out.println("原始数组顺序");

        for (int i = 0 ; i < arr.length; i++){

            System.out.println(arr[i]);

        }

        System.out.println("排序后输出");

        sort(arr);

        for (int i = 0 ; i < arr.length; i++){

            System.out.println(arr[i]);

        }

    }

    //简单选择排序算法

    public static void sort(int[] arr){

        //外层循环,从0开始到n-1结束(因为内层循环是到最后一位)

        for(int i = 0; i < arr.length-1; i++){

            int k= i;//定义一个临时变量,存储选定的最小值(哨兵)

            //内层循环,从第i+1开始到n结束,与哨兵进行比较,每轮进行n-i+1次循环

            for(int j = i+1; j < arr.length; j++){

                if(arr[k] > arr[j]){//比较找到比arr[k]小的值

                    k = j;//将最小值下标进行重新赋值

                }

        }    

        //内层循环完之后,找到当前轮次的最小值,进行数据交换

        if (i != k){

            int tmp = arr[i];

            arr[i] = arr[k];

            arr[k] = tmp;

        }

        }

    }

}

代码实现

相关文章

  • 基础算法|简单选择排序

    简单选择排序是一种排序算法,指在简单选择排序过程中,所需移动记录的次数比较少。简单选择排序是不稳定排序。 简单选择...

  • 选择排序-c语言描述

    选择排序分简单选择排序与堆排序两种,先介绍简单选择排序。1.简单选择排序在未排序的序列中找到最小(大)元素,存放到...

  • 常用排序算法(Python实现), 持续更新中

    一、非线性时间比较类排序 交换排序冒泡排序快速排序 插入排序简单插入排序希尔排序 选择排序简单选择排序堆排序 归并...

  • 算法复习-选择类排序(1)-简单选择排序

    简单选择排序 选择类排序的主要动作是“选择”,简单选择排序采用最简单的选择方式,从头至尾顺序扫描序列,找出最小的一...

  • 给自己备份的排序代码

    交换排序 冒泡排序 快速排序 插入排序 直接插入排序 希尔排序 选择排序 简单选择排序 堆排序

  • GO语言实现 一 基本排序

    基本排序包括简单选择排序和插入排序,本文将就这两种排序进行 golang语言实现,并引出希尔排序 一.简单选择排序...

  • 排序算法

    常见排序算法及JAVA实现 简单选择排序(SelectSort) 选择排序思想很简单,对所有元素进行遍历,选出最小...

  • 排序法

    排序分 内部排序和外部排序 内部排序: 插入排序:{直接插入排序,希尔排序} 选择排序:{简单选择排序,堆排序} ...

  • 动画 | 什么是选择排序?

    简单选择排序属性 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序...

  • 七大排序算法总结

    题记: 直接插入排序(稳定)-->希尔排序 : 属于插入排序 简单选择排序(稳定)-->堆排序 :属于选择排序...

网友评论

      本文标题:简单选择排序

      本文链接:https://www.haomeiwen.com/subject/djtfzctx.html