C语言,排序问题,有点不懂

发布网友 发布时间:2024-10-22 14:33

我来回答

5个回答

热心网友 时间:2024-11-07 04:36

这个最烂的排序,偏偏书本还将这么烂,对初学者来说是个灾难,我刚学时也不懂~~~但是我自己想了一个排序方法,用了一段时间以后又了一点体会,发现这个排序和我自己想的一模一样,烂书~~~~
我把自己想的排序发给你吧~~~
int tenp;
int i,j;
int num[100];//长度为n
int n;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(num[j]>num[i])//这里定义排序规则,从小到大排是大于,从大到小排是小于
{
temp=num[i];
num[i]=num[j];
num[j]=temp;
}

热心网友 时间:2024-11-07 04:36

for(k=0;k<n-1;k++) //从第一个数到倒数第二数
{index=k; //保存下标值
for(i=k+1;i<n;i++) //从第二个数到最后一个数
{if(a[i]<a[index])
index=i;} //如果元素小就保存它的下标
{temp=a[index]; //最小值和第一个数交换
a[index]=a[k];
a[k]=temp;
}
选择法其实就是先从所有数中找到最小的与第一个交换,再从第二个数到最后找最小的与第二个数交换,依次类推

热心网友 时间:2024-11-07 04:37

for(k=0;k<n-1;k++) //从第一个数到倒数第二数
{index=k; //保存下标值
for(i=k+1;i<n;i++) //从第二个数到最后一个数
{if(a[i]<a[index])
index=i;} //如果元素小就保存它的下标
{temp=a[index]; //最小值和第一个数交换
a[index]=a[k];
a[k]=temp;
}
这个排序的就是出一个整形数,用以保存下标,当后一个数大于前一个数那就通过下标使两个数字交换位子,不过不建议使用这种排序法,建议使用冒泡排序,网上都可以查到的。

热心网友 时间:2024-11-07 04:37

一个数和他的前一个比较,然后去较大的放在后面

热心网友 时间:2024-11-07 04:38

temp始终存稍大的数

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com