我是靠谱客的博主 冷傲裙子,最近开发中收集的这篇文章主要介绍对于数字的排序(数组形式),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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]);
}

最后

以上就是冷傲裙子为你收集整理的对于数字的排序(数组形式)的全部内容,希望文章能够帮你解决对于数字的排序(数组形式)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部