选择排序
- 原理就是挨个的遍历每个元素,将最小的那个值放到本轮循环起始的首位置。
- 两层循环,外层循环控制已排序的元素的下标,内层循环,找到未排序元素中的最小值。
附上结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/af8fd7c63522c0045cc70f4493c675ef.png)
附上代码
#include <stdio.h>
#include <stdlib.h>
void show_list(int arr[], int length, int index)
{
int i;
printf("插入位置:%d\n", index);
for (i = 0; i <= index; i++)
{
printf("%d ", arr[i]);
}
printf("|");
for (i; i < length; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void select_sort(int arr[], int length)
{
int temp;
for (int i = 0; i < length; i++)
{
for (int j = i; j < length; j++)
{
if (arr[j] < arr[i])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
show_list(arr, length, i);
}
}
int main()
{
int arr[10] = {1,9,2,8,3,7,4,6,5,0};
select_sort(arr, 10);
return 0;
}