c语言选择排序法代码(c语言三种排序方法) 您所在的位置:网站首页 三种排序方法 c语言选择排序法代码(c语言三种排序方法)

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

2022-05-12 08:57| 来源: 网络整理| 查看: 265

选择排序,从字面上来说,就是要把一组数列中的元素给选择出来。

比方说给定一组数列,要求把其中的元素进行从小到大排序,那么只需要在进行每次排序的时候,都把最小的元素给选择出来,放在数列的第一位即可,第二次排序第三次排序同理,把后面数列中的最小元素给选择出来,放在已经排序好的元素的末尾,直到最后需要排序的元素没有为止。

这里有几个注意点:

1、第一次排序是遍历整个数列,把最小的元素给选择出来放在第一位。

2、第二次排序开始是遍历除了第一个元素外的后面的数列,把后面数列当中最小的元素给选择出来放到第一个元素后面一位。

3、第三次排序同理,直到最后一次排序把整个数列以从小到大的方式打印出来。

用C语言实现选择排序,这是一种最为直观的排序算法

可以发现,在进行选择排序的过程中,每次最为重要的就是选择出一个最小的元素然后进行排序。

理清逻辑,画好流程图

为了让整个流程更加清晰,我画了一张流程图,也能在以后来帮助自己理解。

用C语言实现选择排序,这是一种最为直观的排序算法

这里最容易搞混的地方,我在自己写代码理逻辑的时候也容易出现问题,那就是这个交换位置到底应该放在哪边,所以,为了讲的更清楚一些,我打算用实际例子来举例一下。

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

那么内循环进行遍历的时候,可能会遍历到许多个比当前元素要小的元素,如果在这里进行位置交换,那岂不是就会交换好多次,与我们期望的不符,所以交换位置不能放在内循环里。

所以逻辑应该改为:在进行完内循环后,把最小元素给选择出来,然后再交换位置。

代码实现://选择排序 #include int main() { 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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有