选择法:
#include <stdio.h>
int main()
{
int a[10],minIndex,temp;
printf("input 10 numbers:\n");
for (int i = 0; i < 10; i++)
scanf("%d", &a[i]);
for (int i = 0; i <9; i++)//9次循环比较,其他数排序完成,最后一个数不用比了
{
minIndex =i;//把当前数字的下标设为最小的下标
for (int j = i+1; j <10;j++) {//i+1个数开始比较
if (a[j]<a[minIndex]) minIndex = j;//比假设的最小值还小的数,就用minIndex记住下标
}
temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
}
printf("result:\n");
for (int i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}
冒泡法:
#include <stdio.h>
int main()
{
int a[10],temp;
printf("input 10 numbers:\n");
for (int i = 0; i < 10; i++)
scanf("%d", &a[i]);
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9 - i; j++) {
if (a[j]>a[j+1])
temp = a[j],
a[j] = a[j + 1],
a[j + 1] = temp;
}
}
printf("result:\n");
for (int i = 0; i < 10; i++)
printf("%d ",a[i]);
return 0;
}