#我想问下我写的这个代码是不是c语言中的选择排序?
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main()
{
int i,j,temp=0;
int arr[10] = { 0,9,22,15,10,9,16,100,7,6 };
for (i = 0; i <= 9; i++)
{
for (j = i+1; j <= 9; j++)
{
if (arr[i] <= arr[j])
{
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
for (i = 0; i <= 9; i++)
{
printf("%d\t", arr[i]);
}
}
#根据一道课后习题写的,没找到答案,排序结果是正确的,但不知道我理解的选择排序法和实际上的是否一致 请指教!
修改如下,供参考:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
int i, j, k, temp = 0; //修改
int arr[10] = { 0,9,22,15,10,9,16,100,7,6 };
for (i = 0; i < 9; i++) //for (i = 0; i <= 9; i++) 修改
{
for (j = i + 1, k = i; j < 10; j++) //for (j = i + 1; j <= 9; j++) 修改
{
if (arr[k] <= arr[j]) k = j; //修改
}
if (k != i) //修改
{
temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
}
}
for (i = 0; i <= 9; i++)
{
printf("%d ", arr[i]);
}
return 0;
}