首页 > 其他分享 >选择排序

选择排序

时间:2022-12-05 17:22:06浏览次数:29  
标签:temp min int 元素 选择 排序

选择排序

选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。

选择排序的方法主要有两种,分别是简单选择排序以及堆排序,它们都是从待排序的数据元素中选择合适的元素放到合适的位置来进行排序。

1、简单选择排序

基本思想:

每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止。

算法实现:每一趟通过不断地比较交换来使得首元素为当前最小,交换是一个比较耗时间的操作,我们可以通过设置一个值来记录较小元素的下标,循环结束后存储的就是当前最小元素的下标,这时再进行交换就可以了。

对于数组一个无序数组{4,6,8,5,9}来说,我们以min来记录较小元素的小标,i和j结合来遍历数组,初始的时候min和i都指向数组的首元素,j指向下一个元素,j开始从右向左进行遍历数组元素,若有元素比min元素更小则进行交换,然后min为更小元素的小标,i再向右走,这样循环到i走到最后一个元素就完成了排序

代码实现

int[] b = new int[] { 3, 1, 8, 10, 4, 7 ,11 ,32};



for (int i = 0; b.Length - 1 > i; i++)

{

    int temp = i;

    for (int j = i; j < b.Length - 1; j++)

    {

        if (b[temp] > b[j])

        {

            temp = j;

        }

    }



    int temp2 = b[temp];

    b[temp] = b[i]; 

    b[i] = temp2;

}



Console.WriteLine();

foreach (int i in b)

{

    Console.Write(i + " ");

}

标签:temp,min,int,元素,选择,排序
From: https://www.cnblogs.com/xiao--liang/p/16952900.html

相关文章

  • 4、excel快速排序从1开始
    在分世界杯的文件时,要求把每一行从1开始排列,自己的做法就是先输入1和2,然后拖黑1和2,接着鼠标一直往下拖,这样就了。公式的方法:输入公式=Row()-1,如何在这个单元格的右下角双......
  • 伪类选择器,选择元素
    nth-child(n)用法:1、nth-child(3)表示选择列表中的第3个标签,代码如下:li:nth-child(3){background:#fff}2、nth-child(2n)表示选择列表中的偶数标签,即选择第2、第4、第6......
  • 软件设计模式之模拟游角色选择(Darren建造者模式)
    o(︶︿︶)o唉,今天的状态不是很好,但是学习还是要继续的,今天和大家一起分享一下建造者模式,记得之前自己之前一直再想QQ秀换装是怎么是怎么是实现的,今天看了建造者模式我明白了........
  • Java和Java大数据如何选择?
    01Java与大数据的关系Java是一种语言,而大数据更像是一个方法论或者是集合。从事大数据行业,需要掌握的技能比较多,而且,java是必须要掌握的,举个简单的例子:做大数据的工作需......
  • 排序实现
    十大经典排序算法 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需......
  • 老板:你为什么要选择 Vue?
    大家好,我是Kagol,VueDevUI 开源组件库和EditorX富文本编辑器创建者,专注于前端组件库建设和开源社区运营。假如你是团队的前端负责人,现在老板要拓展新业务,需要开发一个......
  • 拓扑排序 专题
    拓扑排序(\(Topological\)\(sorting\))拓扑排序指的是有向无环图(\(DAG\));学过计算机网络的知道计算机网络中有一个拓扑结构;下面就是一个拓扑结构;那拓扑序就是,图中任意一对顶点......
  • NUMA的选择
    现在的机器上都是有多个CPU和多个内存块的。以前我们都是将内存块看成是一大块内存,所有CPU到这个共享内存的访问消息是一样的。这就是之前普遍使用的S......
  • js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合
    现在有一批手机,其中颜色有['白色','黑色','金色','粉红色'];内存大小有['16G','32G','64G','128G'],版本有['移动','联通','电信'],要求写一个算法,实现[['白色','16G','移动'......
  • 数组排序,自己内部会调整,数组也是引用类型
    Java的基本数据类型有8种,分别是:byte(位)、short(短整数)、int(整数)、long(长整数)、float(单精度)、double(双精度)、char(字符)和boolean(布尔值)。数组是引用类型 int[] arr2 = {......