/*
*对比数组中前一个元素跟后一个元素的大小,
*如果后面的元素比前面的元素小则用一个变量k来记住他的位置,
*接着第二次比较,用下标为k的元素跟第三个元素进行比较,如果第三个元素比现在下标为k的元素要小,则把第三个元素的下标赋值给变量k,以此往复,
*等到第一次循环结束的时候,我们应该找到了整个数组中最小的那个数的下标了,然后进行判断,
*如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一下值,这样就找到整个数组中最小的数了。
*重复以上的步骤,然后找到数组中第二小的数,让他跟数组中第二个元素交换一下值。
*以此类推,直至排序完成
*/
#include <stdio.h>
static int data[]={9, 2, 7, 19, 100, 97, 63, 208, 55, 78};
void selectSort()
{
int i,j,min,tmp=0;
for (i=0;i<sizeof(data)/4-1;i++)
{
min=i;
for (j=i+1;j<sizeof(data)/4;j++)
{
if (data[j]<data[min])
{
min=j;
}
}
if (min != i)
{
tmp = data[min];
data[min] = data[i];
data[i]=tmp;
}
}
}
void print()
{
for (int i=0;i<sizeof(data)/4;i++)
{
printf("%d ",data[i]);
}
}
int main()
{
printf("----------选择排序----------\n");
print();
printf("\n");
selectSort();
print();
return 0;
}
选择排序C语言实现
最新推荐文章于 2023-06-14 16:11:01 发布