问题描述
我试图修改选择排序,将最大的元素放在数组的末尾,然后对 n - 1 个项目重复选择排序,直到 n 为 0。我的代码编译但输出仍然一个未排序的数组,请帮帮我!
#include <stdio.h>
void selection_sort(int arr[],int n);
int main ()
{
int n;
scanf("%d",&n);
int arr[n];
for (int i = 0; i < n; i++)
scanf("%d",&arr[i]);
selection_sort(arr,n);
for(int i = 0; i < n; i++)
printf("%d\n",arr[i]);
return 0;
}
void selection_sort(int arr[],int n)
{
if(n <= 0)
return;
while(n > 0)
{
int max = 0;
int temp,x;
for(int i = 0; i < n; i++)
{
if(arr[i] >= max)
max = arr[i];
x = i;
}
temp = arr[n - 1];
arr[n - 1] = max;
arr[x] = temp;
selection_sort(arr,--n);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)