c语言选择排序法代码 c语言三种排序方法

排序,从字面上讲,就是选择一组序列中的元素。比如给定一组数列,要求对其元素从小到大排序,那么每次排序只需要选择数列第一位最小的元素,第二次排序和第三次排序也是一样,这样后面数列中最小的元素被选中,放在已经排序的元素的末尾,直到最后没有元素可以排序。这里有几...

排序,从字面上讲,就是选择一组序列中的元素。

比如给定一组数列,要求对其元素从小到大排序,那么每次排序只需要选择数列第一位最小的元素,第二次排序和第三次排序也是一样,这样后面数列中最小的元素被选中,放在已经排序的元素的末尾,直到最后没有元素可以排序。

这里有几点需要注意:

1。第一种排序是遍历整个序列,选择最小的元素放在第一位。

2。第二次排序开始时,遍历除第一个元素以外的后续序列,选择后续序列中最小的元素,放在第一个元素后面一个位置。

3。第三次排序也是如此,直到最后一次排序打印出从小到大的整个序列。

可以发现,在选择和排序的过程中,每次最重要的是选择最小的元素并排序。

理清逻辑,画流程图。

为了让整个过程更清晰,我画了一个流程图,也可以帮助我后面的理解。

这里最困惑的是我写代码逻辑容易出现的问题,就是这个交换位置应该放在哪边。所以为了说的更清楚,我打算用实际例子来举例说明。

外循环是遍历数组中的所有元素,内循环是遍历除当前元素以外的所有元素,然后进行条件判断,即找出最小的元素,然后与当前元素交换位置。

然后,当内部循环遍历时,它可能会遍历许多比当前元素更小的元素。如果在这里交换位置,那岂不是交换了很多次,与我们的预期不符,所以交换位置不能放在内圈。

所以逻辑应该改成:在内循环之后,选择最小的元素,然后交换位置。

代码实现:

//选择排序#include<stdio.h>int ***in() { int Select[9] = {100, 3, 7, 6, 55, 29, 33, 10, -12}; int Temp = 0; int index = 0; for(int i = 0; i < 9; i++){ index = i; for(int j = i+1; j<9;j++){ if(Select[j]<Select[index]){ index = j; } } Temp = Select[i]; Select[i] = Select[index]; Select[index] = Temp; for(int i = 0; i < 9; i++){ printf("%d ", Select[i]); } printf("n"); }}

大家可以看到,交换位置的逻辑和冒泡排序、直接插入排序没有太大的区别,只是这里交换位置的时候,必须选择最小的元素再交换,而不是找一个最小的元素直接交换位置。

试验结果

摘要

一般来说,选择排序并不难,但是如果刚开始学习数据结构,就有些不清楚了。最重要的是理清逻辑。理清逻辑后,因为内循环的主要目的是求最小元素,所以如果在内循环中交换位置就没有意义了,只好在内循环外交换位置。

总的来说不难,测试结果和我们最终预期的一样。

本文来自奶味小仙女投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/653718.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 07-28
下一篇 07-28

相关推荐

  • chrome更改语言设置 教你设置谷歌浏览器的语言

    Google Chrome是由Google开发的一款设计简单、高效的Web浏览工具。Google Chrome的特点是简洁、快速。GoogleChrome支持多标签浏览,每个标签页面都在独立的“沙箱”内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭。此外,Google Chrome基于更强

    2023-07-29 08:32:01
    232 0
  • 语言栏不显示了怎么办 win7语言栏修复命令

    我们在使用电脑的时候会遇到一些问题,比如Windows S10语言栏没了怎么解决问题。让我们和边肖一起往下看。操作流程:1.首先,我们在计算机的开始菜单中找到并点击设置选项。2.然后,在页面中,我们找到并单击时间和语言选项。3.然后我们首先在左边选择语言,在右边找到拼写、打

    2023-07-29 05:54:01
    1000 0
  • c语言选择排序法代码 c语言三种排序方法

    排序,从字面上讲,就是选择一组序列中的元素。比如给定一组数列,要求对其元素从小到大排序,那么每次排序只需要选择数列第一位最小的元素,第二次排序和第三次排序也是一样,这样后面数列中最小的元素被选中,放在已经排序的元素的末尾,直到最后没有元素可以排序。这里有几

    2023-07-28 15:02:01
    702 0
  • win10怎么还原语言栏位置

    你好,win10无法输入中文,语言状态栏消失,你可以下载安装输入法,然后语言状态栏就有了。1电脑点击开始键,再点击控制面板,如下图所示2在控制面板,点击更改或其他输入法,如下图所示3在更改或其他输入法窗口,点击更改键盘,如下图所示4在更改键盘,点击语言栏,再点击停

    2023-07-28 06:52:01
    123 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信