算法复习:冒泡排序

          思想:对于一个列表,每个数都是一个"气泡 ",数字越大表示"越重 ",最重的气泡移动到列表最后一位,冒泡排序后的结果就是“气泡”按照它们的重量依次移动到列表中它们相应的位置。

 

          算法:搜索整个列表,比较相邻元素,如果两者的相对次序不对,则交换它们,其结果是最大值“想水泡一样”移动到列表的最后一个位置上,这也是它在最终完成排序的列表中合适的位置。然后再次搜索列表,将第二大的值移动至倒数第二个位置上,重复该过程,直至将所有元素移动到正确的位置上。

        下面的动画演示了对{3,6,5,9,7,1,8,2,4}进行冒泡排序的全过程:

 bubblesort

 

代码实现【在VC 2005上运行成功】:

#include "stdafx.h"int main(){    int list[9] ={3,6,5,9,7,1,8,2,4};        int length = sizeof(list)/sizeof(int);        int temp = 0;        for(int i=1;i<length;i++){       bool exchange=false;       for(int j=0;j<length-i;j++){                   if(list[j]>list[j+1]){               temp= list[j];               list[j]=list[j+1];               list[j+1]=temp;               exchange=true;            }                                     }     if(!exchange){            break;          }  }        for(int i=0;i<length;i++){     printf("%d\t",list[i]);    }      return 0;
}

     这里面采用了一个交换标志exchange,如果在一趟排序中没有出现过一次交换,即exchange==false,说明此数据已经是有序了,所以可以退出排序过程。

转载于:https://www.cnblogs.com/ChrisWang/archive/2009/09/09/1563674.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 59. 螺旋矩阵 II(递归)

给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]] 解题思路 按层进行数字的填充&#xff0c;每一层…

前端基础进阶(七):函数与函数式编程

纵观JavaScript中所有必须需要掌握的重点知识中&#xff0c;函数是我们在初学的时候最容易忽视的一个知识点。在学习的过程中&#xff0c;可能会有很多人、很多文章告诉你面向对象很重要&#xff0c;原型很重要&#xff0c;可是却很少有人告诉你&#xff0c;面向对象中所有的重…

期权数据 获取_我如何免费获得期权数据

期权数据 获取by Harry Sauers哈里绍尔斯(Harry Sauers) 我如何免费获得期权数据 (How I get options data for free) 网页抓取金融简介 (An introduction to web scraping for finance) Ever wished you could access historical options data, but got blocked by a paywall…

显示与删除使用工具

右击工具菜单栏中的空白处选择自定义 在弹出的自定义菜单中选择命令选项在选择想要往里面添加工具的菜单&#xff0c;之后在选择要添加的工具 若想要删除工具栏中的某个工具&#xff0c;在打开自定义菜单后&#xff0c;按住鼠标左键拖动要删除工具到空白处 例如 转载于:https:/…

js值的拷贝和值的引用_到达P值的底部:直观的解释

js值的拷贝和值的引用介绍 (Introduction) Welcome to this lesson on calculating p-values.欢迎参加有关计算p值的课程。 Before we jump into how to calculate a p-value, it’s important to think about what the p-value is really for.在我们开始计算p值之前&#xff…

leetcode 115. 不同的子序列(dp)

给定一个字符串 s 和一个字符串 t &#xff0c;计算在 s 的子序列中 t 出现的个数。 字符串的一个 子序列 是指&#xff0c;通过删除一些&#xff08;也可以不删除&#xff09;字符且不干扰剩余字符相对位置所组成的新字符串。&#xff08;例如&#xff0c;“ACE” 是 “ABCDE…

监督学习-KNN最邻近分类算法

分类&#xff08;Classification&#xff09;指的是从数据中选出已经分好类的训练集&#xff0c;在该训练集上运用数据挖掘分类的技术建立分类模型&#xff0c;从而对没有分类的数据进行分类的分析方法。 分类问题的应用场景&#xff1a;用于将事物打上一个标签&#xff0c;通常…

istio 和 kong_如何启动和运行Istio

istio 和 kongby Chris Cooney克里斯库尼(Chris Cooney) 如何启动和运行Istio (How to get Istio up and running) 而一旦完成&#xff0c;您就可以做的疯狂的事情。 (And the crazy stuff you can do once it is.) The moment you get Istio working on your cluster, it fee…

js练习--贪吃蛇(转)

最近一直在看javascript&#xff0c;但是发现不了动力。就开始想找动力&#xff0c;于是在网上找到了一个用js写的贪吃蛇游戏。奈何还不会用git&#xff0c;就只能先这样保存着。哈哈哈&#xff0c;这也算第一篇博客了&#xff0c;以后会坚持用自己的代码写博客的&#xff0c;下…

bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?

http://www.lydsy.com/JudgeOnline/problem.php?id2463 n为偶数时&#xff0c;一定可以被若干个1*2 矩形覆盖 先手每次从矩形的一端走向另一端&#xff0c;后手每次走向一个新的矩形 所以先手必胜 n为奇数时&#xff0c;先手走完一步后&#xff0c;剩下同n为偶数 所以先手必败…

无监督学习-主成分分析和聚类分析

聚类分析&#xff08;cluster analysis&#xff09;是将一组研究对象分为相对同质的群组&#xff08;clusters&#xff09;的统计分析技术&#xff0c;即将观测对象的群体按照相似性和相异性进行不同群组的划分&#xff0c;划分后每个群组内部各对象相似度很高&#xff0c;而不…

struts实现分页_在TensorFlow中实现点Struts

struts实现分页If you want to get started on 3D Object Detection and more specifically on Point Pillars, I have a series of posts written on it just for that purpose. Here’s the link. Also, going through the Point Pillars paper directly will be really help…

封装jQuery下载文件组件

使用jQuery导出文档文件 jQuery添加download组件 jQuery.download function(url, data, method){if( url && data ){data typeof data string ? data : paramEdit(data);     function paramEdit(obj){        var temStr "",tempStr"…

7.13. parallel - build and execute shell command lines from standard input in parallel

并行执行shell命令 $ sudo apt-get install parallel 例 7.5. parallel - build and execute shell command lines from standard input in parallel $ cat *.csv | parallel --pipe grep 13113 设置块大小 $ cat *.csv | parallel --block 10M --pipe grep 131136688 原…

MySQL-InnoDB索引实现

联合索引提高查询效率的原理 MySQL会为InnoDB的每个表建立聚簇索引&#xff0c;如果表有索引会建立二级索引。聚簇索引以主键建立索引&#xff0c;如果没有主键以表中的唯一键建立&#xff0c;唯一键也没会以隐式的创建一个自增的列来建立。聚簇索引和二级索引都是一个b树&…

Go语言-基本的http请求操作

Go发起GET请求 基本的GET请求 //基本的GET请求 package mainimport ("fmt""io/ioutil""net/http" )func main() {resp, err : http.Get("http://www.hao123.com")if err ! nil {fmt.Println(err)return}defer resp.Body.Close()body, …

钉钉设置jira机器人_这是当您机器学习JIRA票证时发生的事情

钉钉设置jira机器人For software developers, one of the most-debated and maybe even most-hated questions is “…and how long will it take?”. I’ve experienced those discussions myself, which oftentimes lacked precise information on the requirements. What I…

python的赋值与参数传递(python和linux切换)

1&#xff0c;python模式切回成linux模式------exit&#xff08;&#xff09; linux模式切换成python模式------python 2,在linux里运行python的复合语句&#xff08;得在linux创建.py文件&#xff09; touch le.py vim le.py----在le文件里输入python语句 #!/usr/bin/python …

vscode 标准库位置_如何在VSCode中使用标准

vscode 标准库位置I use Visual Studio Code as my text editor. When I write JavaScript, I follow JavaScript Standard Style.Theres an easy way to integrate Standard in VS Code—with the vscode-standardjs plugin. I made a video for this some time ago if youre …

leetcode 1603. 设计停车系统

请你给一个停车场设计一个停车系统。停车场总共有三种不同大小的车位&#xff1a;大&#xff0c;中和小&#xff0c;每种尺寸分别有固定数目的车位。 请你实现 ParkingSystem 类&#xff1a; ParkingSystem(int big, int medium, int small) 初始化 ParkingSystem 类&#xf…