C语言之冒泡排序
冒泡排序:
1). 简介
其实就是把一个数组的元素,按照从小到大(从大到小)得顺序,重新排列起来,这种排序就叫冒泡排序
例: int nums[5] = {5,4,3,2,1};
//经过排序后
下标0的元素变成了1
下标1的元素变成了2
下标2的元素变成了3
下标3的元素变成了4
下标4的元素变成了9
2). 核心思想
有N轮,每轮从第一个元素开始跟下一个元素进行比较,大的放在后面,小的放在前面
下标: 0 1 2 3 4
5 4 3 2 1
第一轮: 4 5 3 2 1 nums[0] > nums[0+1]; //交换俩个下标种的元素
4 3 5 2 1 nums[1] > nums[1+1]
4 3 2 5 1 nums[2] > nums[2+1]
4 3 2 1 5 nums[3] > nums[3+1]
这一轮比较了4次
第二轮 3 4 2 1 5 nums[0] > nums[0+1];
3 2 4 1 5 nums[1] > nums[1+1]
3 2 1 4 5 nums[2] > nums[2+1];
这一轮比较了3次
第三轮 2 3 1 4 5 nums[0] > nums[0+1];
2 1 3 4 5 nums[1] > nums[1+1];
这一轮比较了2次
第四轮 1 2 3 4 5 nums[0] > nums[0+1];
这一轮比较了1次
C语言之冒泡排序的更多相关文章
- C语言实现冒泡排序-整数排序
我一直觉得排序算法挺重要的,但是却没有深入的去理解它: 没有深入理解就无法用代码将它实现: 在腾讯的在线模拟考试中就有一题问到冒泡排序: 我几乎是傻眼了!我知道这样的问题是最基础的: 无论过去怎样现在 ...
- C语言实现冒泡排序法和选择排序法代码参考
为了易用,我编写排序函数,这和直接在主调函数中用是差不多的. 我认为选择排序法更好理解!请注意 i 和 j ,在写代码时别弄错了,不然很难找到错误! 冒泡排序法 void sort(int * ar, ...
- 排序算法c语言描述---冒泡排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析. 文章规划: 一.通过自己对排序算法本身的理解,对每个方法写个小测试程序. 具体思路分析 ...
- C语言之冒泡排序、选择排序、折半查询、进制查表
菜单导航 1.冒泡排序 2.选择排序 3.折半查询 4.进制查表(十进制转二进制.八进制.十六进制) 一.冒泡排序 //1.冒泡排序 /** 一组无序数字,进行从小到大排序 冒泡排序的过程:就是每个循 ...
- C语言实现冒泡排序算法
新人新气象,又一个学习C的新人来了. 冒泡排序,基础中的基础,原理不啰嗦了. 代码中display()为数组展示函数,sort_bubble()为直接实现排序,details()为带动画展示. #in ...
- C语言数组排序——冒泡排序、选择排序、插入排序
一.冒泡排序 原理解析:(以从小到大排序为例)在一排数字中,将第一个与第二个比较大小,如果后面的数比前面的小,则交换他们的位置. 然后比较第二.第三个……直到比较第n-1个和第n个,此时,每一次比较都 ...
- C语言:“冒泡排序”与“二分法”
1.冒泡排序: what:将元素进行两两比较,大的(小的)向后排. when:数组中有多个元素,需要进行比较排序比较的时候使用. how:N个数字来排队,两两比较小靠前.(升序) 外层循环:N-1(控 ...
- C语言实现 冒泡排序 选择排序 希尔排序
// 冒泡排序 // 选择排序 // 希尔排序 // 快速排序 // 递归排序 // 堆排序 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h& ...
- Go语言之冒泡排序
package main //main函数 import "fmt" //相当于#include func main() { ar := [], , , , , , , , , } ...
随机推荐
- C# 笔试题,看你会几道题
1. Which interface you need to implement to support for each? IEnumerator IEnumerable ICompare ...
- 转载:善待Redis中的数据
Redis是我们数据的保管者,我们可以随时存随时取,大的小的,重要的不重要的,它都毫无怨言的帮我们保存着,甚至有些时候,我们变得很懒,存东西进去的时候顺便还贴张纸:"过了一个星期就帮我扔了吧 ...
- ReSharper C++计划上市
ReSharper是著名的VS代码生成工具,去年夏天,JetBrains公司就发布了ReSharper将推出支持C++的版本. ReSharper C++ EAP(Early Access Progr ...
- C#可扩展编程之MEF
C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻 前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在 ...
- 开源Asp.Net MVC网上商城BrnShop
开源Asp.Net MVC网上商城BrnShop正式发布,提供源码下载 BrnShop网上商城是以Asp.Net mvc3为基础开发的网上商城,源代码完全开源(企业版的源代码目前还没有完全整理完成,一 ...
- VS2012下systemC配置
一.编译System库 1.下载SystemC library source code 到http://www.systemc.org注册会员账号后,即可下载SystemC ...
- ASP.NET MVC显示WebForm网页或UserControl控件
ASP.NET MVC显示WebForm网页或UserControl控件 学习与使用ASP.NET MVC这样久,还是对asp.net念念不忘.能否在asp.net mvc去显示aspx或是user ...
- cvs vss svn和git比较
cvs vss svn和git比较 特征 CVS Git Mercurial Subversion 是否原子提交 CVS: 没有. CVS提交不是原子的 Git: 是的. 提交都是原子的 Mercur ...
- require.js实践
ASP.NET MVC应用require.js实践 这里有更好的阅读体验和及时的更新:http://pchou.info/javascript/asp.net/2013/11/10/527f6ec41 ...
- [转]Blocking Code Injection on iOS and OS X
Source:http://www.samdmarshall.com/blog/blocking_code_injection_on_ios_and_os_x.html Yesterday I pos ...