一.从右往左实现(由于太普遍,这里只写一种方法)

从大到小排序
方法原理:相邻数比较

for(i=0;i<num-1;i++)//两层循环第一次都应有num-1次比较{for(j=0;j<num-1-i;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}

这个情况是从a[1]开始的情况

for(int i=1;i<=n-1;i++)for (int j = 1; j <= n-i; j++) {if (student[j] > student[j + 1]){t = student[j];student[j ] = student[j+1];student[j+1] = t;}}

二.从左往右实现(两种方法)

1.从大到小排序
方法原理:按数组顺序,第i个数和其他num-i个数比较

for(i=0;i<num-1;i++){for(j=i+1;j<num;j++){if(a[i]<a[j]){m=a[i];a[i]=a[j];a[j]=m;}}}

2.从小到大排序
方法原理:相邻数比较

for(int i=0;i<num-1;i++){  for(int j=num-1;j>i;j--){ //从最后一个数开始比较if(a[j]<a[j-1]){t=a[j];a[j]=a[j-1];a[j-1]=t;}}}

这个情况是从a[1]开始的情况

for(int i=1;i<=num-1;i++){  for(int j=num;j>i;j--){ if(a[j]<a[j-1]){t=a[j];a[j]=a[j-1];a[j-1]=t;}}}

整体思维

无论是从0还是1开始, 确保每个单位都能访问的情况下,两层循环第一次永远都有num-1次(即如果num=8,那么这两层循环的次数第一次都应该为7),还有一点就是(第一、三个方法)第二层循环从左往右第一次确定的是最左边的数,那么首先就应该从最后面的数开始比,即初始值应该是num的值(以1开始为例),反之亦然。

一共三个方法,第一个与第三个方法原理类似,每次想到冒泡排序总是想不全,这次干脆整成个博客,以便复习~

其实,一共有4个方法,第二个方法原理也能写出两种方法,嘻嘻,留一个给你们思考一下,比较容易,实操永远比看要好

冒泡排序从左到右 从右到左方法实现(三种方法)相关推荐

  1. 用jsp实现右导航窗格_不想升级操作系统,可以用这三种方法阻止Windows10更新

    微软最近将Windows 10 20H2版发布到了其稳定的发布渠道,由于我们都熟悉微软的历史,因此我们当中许多人还不愿升级到该版本,因为它肯定会存在许多错误和缺陷,但是,微软不允许普通用户停止Wind ...

  2. 字符串的左旋右旋问题(C语言实现,三种方法求解)

    字符串左旋右旋问题其实是同理的,下边以左旋为例: 方法一 思路:左旋一次就是将整个字符串向左移一个字符,第一个字符(arr[0])移动到最右侧.这样循环操作左旋次数就是最终左旋结果,如上图所示. 实现 ...

  3. 【排序算法】冒泡排序的三种方法

    冒泡排序算法: 最优时间复杂度为o(n),即当且只当元素本身就是按照从小到大的顺序排列的(这里默认冒泡排序从小到大排列). 最差时间复杂度为o(n^2),当其中有任何一组数据不是按照从小到大排列. # ...

  4. html中把句子往右边弄一点咋办,CSS上的左,中,右对齐方法,可以在一行上混合...

    一种用CSS以左对齐/中心对齐/右对齐方式显示用HTML编写的句子的方法 在用"从左到右书写的语言"(如日语和英语)中编写的HTML中,除非指定了字符移位方向,否则句子左对齐显示. ...

  5. mysql内外三种连接_mysql之内连接,外连接(左连接,右连接),union,union all的区别...

    内连接,外连接,左连接,右连接,全连接 测试数据: CREATE TABLE `a_table` ( `a_id` int(11) DEFAULT NULL, `a_name` varchar(10) ...

  6. [c++]-c++中的左值和右值、左值引用和右值引用、万能引用和引用折叠及完美转发

    1.左值和右值 1.1左值和右值定义 在c++中,左值是一个指向内存的东西,换句话来讲,左值有地址,保存在内存中,右值则为不指向任何地方东西,即不在内存中占有确定位置.一般来说,右值是暂时和短暂的,而 ...

  7. C++/C++11中左值、左值引用、右值、右值引用的使用

    C++的表达式要不然是右值(rvalue),要不然就是左值(lvalue).这两个名词是从C语言继承过来的,原本是为了帮助记忆:左值可以位于赋值语句的左侧,右值则不能. 在C++语言中,二者的区别就没 ...

  8. 单片机向左,嵌入式向右

    单片机向左,嵌入式向右 这么个标题我想说什么呢?意思是单片机跟嵌入式是有区别的.这篇文章就是来分析要如何选择,是学嵌入式还是单片机呢?我们朱有鹏物联网大讲堂推出的课程就有单片机跟嵌入式两个系列课程,有 ...

  9. 39.左值、左值引用、右值、右值引用

    1.左值和右值的概念 左值是可以放在赋值号左边可以被赋值的值:左值必须要在内存中有实体:          右值当在赋值号右边取出值赋给其他变量的值:右值可以在内存也可以在CPU寄存器.       ...

最新文章

  1. docker搭建常见组件
  2. python编码-python中处理中文编码问题
  3. base64编码_几分钟看懂Base64编码原理
  4. 3G时代手机网站的特点和开发原则
  5. hdu5279 YJC plays Minecraft 【分治NTT】
  6. 精准高效估计多人3D姿态,美图北航分布感知式单阶段模型(CVPR 2022)
  7. gentoo/funtoo 环境配置使用 valgrind
  8. python 嵌套异常
  9. oracle 转储 mysql_Oracle中DUMP的转储方法
  10. JQuery之事件冒泡
  11. 一份清单:所有可以放进head标签的元素
  12. 第五次网页前端培训(JS的基本使用)
  13. 声卡是HDA Intel,芯片为IDT 92HD81B1C5的ubuntu12.04下声音很小的解决方法
  14. ai怎么做盒子效果图_ai怎么制作包装盒? Ai贴图工具制作包装盒的实例教程
  15. 微信发送语音功能测试用例
  16. E - The Journey of Geor Autumn(线性DP,前缀和)
  17. CodeForces - 1144C Two Shuffled Sequences【优先队列】
  18. bitwise oracle,linq – 与NHibernate和Oracle的Bitwise AND
  19. Unity3d之Quaternion 学习与应用
  20. Python——列表的方法

热门文章

  1. hd集成显卡 linux驱动,ati 集成显卡HD3200 驱动安装
  2. JAVA简单大数运算
  3. 华为如何升级鸿蒙os,华为鸿蒙OS首批升级机型公布
  4. geek_2013年How-To Geek的节日礼物指南:男孩,女孩,极客和有情机器人的书籍
  5. 【军事】“运筹帷幄”的利器:二三维一体化实战指挥辅助决策系统
  6. 身份证号码有效性验证
  7. 监控FTP服务状态,并自动重启servU
  8. R语言实战学习--回归
  9. JS/JQuery整齐的照片墙:展示很多宽高不同照片,让每一行中的所有照片高度一样,所有的行的宽度一样
  10. android 触摸 唤醒屏幕,android 唤醒和解锁屏幕