2016 - 2024

感恩一路有你

简单选择排序2

浏览量:1211 时间:2024-06-23 10:52:25 作者:采采

在上一节中,我们介绍了简单选择排序的基本原理和实现方法。通过比较数组中的元素,我们找到了最大的数并将其放在数组的第一个位置。然而,直接将最大数放在第一个位置会导致原来该位置的数据丢失。

为了解决这个问题,我们需要使用一个临时变量来存储数据。类似于互换两瓶饮料的液体,我们可以定义一个变量t来暂存数据。具体步骤如下:

  1. 将a[0]的值赋给t:t a[0];
  2. 将a[3]的值赋给a[0]:a[0] a[3];
  3. 将t的值赋给a[3]:a[3] t;

这样,我们就成功地将最大数放在了数组的第一个位置,同时没有丢失其他数据。

通过观察上述步骤,我们发现每次操作的目标下标no和循环的次数j是有规律的。因此,我们可以使用循环来重复执行这段代码。具体代码如下:

include "stdio.h"
int main()
{
    int a[10]  {34, 56, 7, 89, 9, 9, 56, 34, 78, 65};
    int no;
    int t;
    int i;
    int j;
    for(j  0; j < 9; j  ) // 控制循环9次
    {
        // 重复执行的代码段
        no  j;
        for(i  j   1; i < 10; i  )
        {
            if(a[i] > a[no])
            {
                no  i;
            }
        }
        t  a[j];
        a[j]  a[no];
        a[no]  t;
        //-----------------
    }
    // 输出数组里的元素
    for(i  0; i < 10; i  )
    {
        printf("%d ", a[i]);
    }
    printf("

");
}

运行结果如下:

89 78 65 56 56 34 34 9 9 7 

至此,我们已经完成了对10个元素的简单选择排序。使用循环的方法能够简化代码,并且适用于不同数量的元素进行排序。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。