栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言揉碎分析冒泡排序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言揉碎分析冒泡排序

 ~简单理解冒泡排序就是从前往后逐位比较大小,以升序举例,如果第一位比第二位大,则第一位的值与第二位的值调换位置,再继续比较第二位与第三位...直至比较到最后一位。

~例:5  3  1排序 int nums[3]={5,3,1};

·初始序列:nums[0]=5;nums[1]=3;nums[2]=1;

5与3比5大,则令nums[1]取值5,nums[0]取值3(就是0位与1位调换位置)。

·这会儿序列变为:nums[0]=3;nums[1]=5;nums[2]=1;

比较nums[1]=5,nums[2]=1,5大于1,则令nums[2]=5,nums[1]=1.

·这会儿序列变为:nums[0]=3;nums[1]=1;nums[2]=5;

最后比较nums[0]=3,nums[1]=1,3大于1,则令nums[1]=3,nums[0]=1

·结果序列:nums[0]=1;nums[1]=3;nums[2]=5;

看程序:

#include 

int main()
{
    int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9};
    int i, j, temp; //定义一个中间值temp
 
    //冒泡排序算法:进行 n-1 轮比较
    for(i=0; i<10-1; i++)
    {
        //每一轮比较前 n-1-i 个,也就是说,已经排序好的最后 i 个不用比较
        for(j=i+1; j<10; j++)
            {
                //如果前一位比后一位大
                if(nums[i] > nums[j])
                {
                    temp = nums[i]; // 把大值取出来放在temp里
                    nums[i] = nums[j];//把后一位小值调到前一位
                    nums[j] = temp;//取出来的那个大的值赋值给后一位
                }
             }
    }
   
    //输出排序后的数组
    for(i=0; i<10; i++)
    {
        printf("%d ", nums[i]);
    }

   
    return 0;
}

结果:1 2 3 4 5 6 7 8 9 10 

思考下降序怎么弄吧,只需要一秒钟就可以搞定!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676262.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号