#include<stdio.h>
int main()
{
int a[10] = { 65,5,8,2,71,96,47,62,13,21 };
for (int i = 0; i < 10; i++)
{
int min = i;
for (int j = i + 1; j < 10; j++)
{
if (a[min] > a[j])
{
int temp = a[min];
a[min] = a[j];
a[j] = temp;
}
}
}
for (int i = 0; i < 10; i++)
{
printf("%6d", a[i]);
}
return 0;
}
————————————————VS2019————————————————————
让int min=i;
是进行第一次循环是循环定a[0]比较后几个的大小 比a[0]小的a[i]放到a[0]处
a[1]
65,5,8,2,71,96,47,62,13,21 | 没有变换之前的数组 |
---|---|
5,65,8,2,71,96,47,62,13,21 | 位置交换一次以后 |
5,65,8,2,71,96,47,62,13,21 | 位置交换两次后 |
2,65,8,5,71,96,47,62,13,21 | 位置交换三次以后 |
2,65,8,5,71,96,47,62,13,21 | 位置交换四次以后 |
.
.
.
.
第一次大循环结束
开始第二次大循环
2,8,65,5,71,96,47,62,13,21 | 位置交换一次后 |
---|---|
2,5,65,8,71,96,47,62,13,21 | 位置交换两次后 |
2,5,65,8,71,96,47,62,13,21 | 位置交换三次后 |
2,5,65,8,71,96,47,62,13,21 | 位置交换四次后 |
2,5,65,8,71,96,47,62,13,21 | 位置交换五次后 |
.
.
.
.
.
继续。。。。。。
选择排序和冒泡排序的主要区别
冒泡排序法的排序方法是
满足条件后a[0]a[1]的值换,
满足条件a[1]a[2]的值换
不满则条件的话值原始不动a[2]a[3]…
这样的换位置方法
而选择排序法是
a[0]a[]1满足条件后值互换,
a[0]a[2]满足条件后值互换,
让a[0]和数组中所有的值都比一次;满足后a[0]的值直接和a[i]换位置