算法:选择排序 从小到大排序,拿第一个位置的元素去和后面的元素比,找到最小的,二者位置上的元素进行交换,在拿第二个位置的元素和后面的比,以此类推。
定义一个保存最小值的数组下标mindex,在循环里 假设第一个数就是最小值 用mindex保存,
在待排序序列中进行比较,如果后面小,则交换下标,交换值
?代码示例:
int main()
{
int arr[10];
printf("请输入十个数:");
int temp=0;
int mindex;//最小值的下标
for (int i = 0; i <10; i++)
{
scanf("%d", &arr[i]);
}
for (int i = 0; i < 9; i++) //找了几趟 趟数 10个数找9趟
{
mindex = i;//假设第一个数就是最小值
for (int j = i +1 ; j < 10; j++) //待排序的最小值
{
if (arr[j]<arr[mindex])
{
mindex = j;
}
}
//交换mindex和待排序的第一个值
temp = arr[i];
arr[i] = arr[mindex];
arr[mindex] = temp;
}
printf("排序后的顺序是:");
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
程序实现:
?越努力,越幸运
加油!
|