算法学习之排序算法(一)(冒泡法)
来源:互联网 发布:还珠格格天上人间知画 编辑:程序博客网 时间:2024/05/17 19:21
冒泡排序的内容并不复杂。假设有n个数据需要排序,那么我们需要确定n个从大到小的数据,每一次都挑选第n大的数据是多少,并且放大相应的位置。直到所有的数据都排列整齐了,那么我们的排序就结束了。
1、冒泡代码
<code class="hljs cpp has-numbering"><span class="hljs-keyword">void</span> bubble_sort(<span class="hljs-keyword">int</span> <span class="hljs-built_in">array</span>[], <span class="hljs-keyword">int</span> length){ <span class="hljs-keyword">int</span> inner = <span class="hljs-number">0</span>, outer = <span class="hljs-number">0</span>; <span class="hljs-keyword">int</span> median = <span class="hljs-number">0</span>; <span class="hljs-keyword">if</span>(NULL == <span class="hljs-built_in">array</span> || <span class="hljs-number">0</span> == length) <span class="hljs-keyword">return</span>; <span class="hljs-keyword">for</span>(outer = length-<span class="hljs-number">1</span>; outer >= <span class="hljs-number">1</span>; outer --){ <span class="hljs-keyword">for</span>(inner = <span class="hljs-number">0</span>; inner < outer; inner ++){ <span class="hljs-keyword">if</span>(<span class="hljs-built_in">array</span>[inner] > <span class="hljs-built_in">array</span>[inner + <span class="hljs-number">1</span>]){ median = <span class="hljs-built_in">array</span>[inner]; <span class="hljs-built_in">array</span>[inner] = <span class="hljs-built_in">array</span>[inner + <span class="hljs-number">1</span>]; <span class="hljs-built_in">array</span>[inner + <span class="hljs-number">1</span>] = median; } } }}</code>
2、改进代码
<code class="hljs cpp has-numbering"><span class="hljs-keyword">void</span> bubble_sort(<span class="hljs-keyword">int</span> <span class="hljs-built_in">array</span>[], <span class="hljs-keyword">int</span> length){ <span class="hljs-keyword">int</span> inner = <span class="hljs-number">0</span>, outer = <span class="hljs-number">0</span>; <span class="hljs-keyword">int</span> median = <span class="hljs-number">0</span>; <span class="hljs-keyword">int</span> flag = <span class="hljs-number">1</span>; <span class="hljs-keyword">if</span>(NULL == <span class="hljs-built_in">array</span> || <span class="hljs-number">0</span> == length) <span class="hljs-keyword">return</span>; <span class="hljs-keyword">for</span>(outer = length-<span class="hljs-number">1</span>; outer >= <span class="hljs-number">1</span> && flag; outer --){ flag = <span class="hljs-number">0</span>; <span class="hljs-keyword">for</span>(inner = <span class="hljs-number">0</span>; inner < outer; inner ++){ <span class="hljs-keyword">if</span>(<span class="hljs-built_in">array</span>[inner] > <span class="hljs-built_in">array</span>[inner + <span class="hljs-number">1</span>]){ median = <span class="hljs-built_in">array</span>[inner]; <span class="hljs-built_in">array</span>[inner] = <span class="hljs-built_in">array</span>[inner + <span class="hljs-number">1</span>]; <span class="hljs-built_in">array</span>[inner + <span class="hljs-number">1</span>] = median; <span class="hljs-keyword">if</span>(flag == <span class="hljs-number">0</span>) flag = <span class="hljs-number">1</span>; } } }}</code>
0 0
- 算法学习之排序算法(一)(冒泡法)
- 算法学习之排序算法(一)(冒泡法)
- 排序算法之冒泡(一)
- 算法学习之路(冒泡排序)
- 排序算法(一)-----冒泡法
- 排序算法之——冒泡排序(一)
- 算法学习(一、冒泡排序)
- 排序算法(一)- 冒泡排序
- 排序算法--冒泡排序(一)
- 数据结构--排序算法(一)冒泡排序
- 排序算法(一) 冒泡排序
- 算法学习之排序算法:冒泡排序
- 插入、选择、冒泡排序算法学习总结(一)
- 算法学习之冒泡排序
- 学习算法之冒泡排序
- 小白聊算法(一)之冒泡排序演示图
- 经典排序算法(一)冒泡法排序----C++实现
- java排序算法学习(一)--冒泡排序
- 数据结构-顺序表
- win10系统任务栏卡死怎么办(三种方式)
- Moldflow 2017 CADDoctor 2017 破解方法和下载网址
- libevent学习笔记【使用篇】——7. evbuffer:缓冲IO的实用功能
- PAT 1065. A+B and C
- 算法学习之排序算法(一)(冒泡法)
- mysql内存优化
- 计算机图形学 - 多边形裁剪算法
- 【PAT甲级】1029. Median (25)
- 使用 thinkPHP 做的一个管理系统
- Java学习基础(一)
- Spring MVC hello world例子程序
- kali安装Netspeed
- 多个activity都是主