概述
1.冒泡排序:比如对十个数字进行排序,将相邻的两个数进行比较,如果第一个数大于第二个数,将两值对换,最后把最大的一位放在最后一位,然后再将剩余的九个数在进行相同的对换。 所以n个数需要n-1趟比较,第一趟进行n-1次两两比较,第j趟进行n-j趟,最终的结果是将这些数从小到大进行排列。
#include <stdio.h>
int main()
{
int a[10];
int i,j,t;
printf("input 10 numbers:n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<9;j++)//进行n-1次比较的循环,n个数进行n-1次
{
for(i=0;i<9-j;i++) //每一次要进行多少趟的比较,第j趟进行n-j趟
{
if (a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;//当上面的数大于下面的时候,进行两两调换,拿t当作中间变量
}
}
}
printf("the sorted number:n");
for(i=0;i<10;i++)//这个循环其实是对10组数的输出
{
printf("%d ",a[i]);
}
printf("n");
}
2.比如对n个数排序(从大到小),先找出n个中最大的数,放在a[0],然后在找其余n-1个数中最大的,放在a[1].....即可
a[0]与a[1]-a[9]的数进行比较,将最大值放置a[0];然后a[1]与a[2]-a[9]的数进行比较,最大值放在a[1],,,,,a[8]与a[9]进行比较。
#include <stdio.h>
int main()
{
int i,j,x=10,t,a[10];
for(i=0;i<x;i++)
scanf("%d",&a[i]);
for(i=0;i<x;i++)
{
for(j=i+1;j<x;j++)
{
if(a[i]<a[j])//从大到小
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<x;i++)
printf("%d ",a[i]);
}
最后
以上就是冷傲裙子为你收集整理的对于数字的排序(数组形式)的全部内容,希望文章能够帮你解决对于数字的排序(数组形式)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复