用选择排序法对数组中10个数字从小到大排序:
先将a[0]依次与a[9]比较,较小的数冒泡到头部,再将a[1]到a[9]中较小的数冒泡到头部,总共比较9轮
#include <stdio.h>
void selection_sort(int array[],int len)//a[10],10
{
int i, j, temp;//本位、后一位、赋值盒子
for (i = 0; i < len-1; i++)//总共比较9轮,第一轮
{
for (j = i+1; j <= len; j++)//j=1,j<=10
if (array[j] < array[i])//array[1]<array[0]
{
temp = array[j];//t=array[1]
array[j] = array [i];//array[1]=array[0]
array[i] = temp;//array[0]=array[1],将该序数所代表数组元素的值赋给每一轮的首位
}
}
}
//内部的for作用:从该轮中最小的数组元素的序数开始
//if作用:将该轮最小值赋给每一轮的首位
//外部的for作用:比较9轮
int main()
{
int a[10], i;
for (i = 0; i < 10; i++)
scanf("%d",&a[i]);
selection_sort(a,10);//对a[0]~a[9]排序
for (i = 0; i < 10; i++)
printf("%d",a[i]);
return 0;
}
这篇博客介绍了如何使用C语言实现选择排序算法,对包含10个数字的数组进行从小到大的排序。通过比较并交换元素,经过9轮遍历将最小的元素逐步冒泡到数组头部。
1万+

被折叠的 条评论
为什么被折叠?



