简单选择排序2
浏览量:1211
时间:2024-06-23 10:52:25
作者:采采
在上一节中,我们介绍了简单选择排序的基本原理和实现方法。通过比较数组中的元素,我们找到了最大的数并将其放在数组的第一个位置。然而,直接将最大数放在第一个位置会导致原来该位置的数据丢失。
为了解决这个问题,我们需要使用一个临时变量来存储数据。类似于互换两瓶饮料的液体,我们可以定义一个变量t来暂存数据。具体步骤如下:
- 将a[0]的值赋给t:t a[0];
- 将a[3]的值赋给a[0]:a[0] a[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个元素的简单选择排序。使用循环的方法能够简化代码,并且适用于不同数量的元素进行排序。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。