排序(五):冒泡排序
来源:互联网 发布:勇士vs掘金季后赛数据 编辑:程序博客网 时间:2024/04/30 09:37
利用交换数据元素的位置进行排序的方法称为交换排序。常用的交换排序方法有冒泡排序法和快速排序法。快速排序法是一种分区交换排序方法。
依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。第一趟完成,最大的数被放置在最后。
重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。
如此下去,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
因为冒泡排序比较简单,所以直接给出示例程序:
//冒泡排序void bubbleSort(int data[], int n){int flag = 0;//总共比较n-1趟for (int i = 1; i < n && flag == 0; i++){//flag用于判断本次交换排序过程是否有交换动作,若本次交换排序过程没有交换动作,则说明数据元素已经全部排列好,就可以提前结束排序过程。flag = 1;for (int j = 0; j < n - i; j++){if (data[j + 1] < data[j]){flag = 0;swap(&data[j], &data[j + 1]);}}}}
//交换两个元素void swap(int *numx, int *numy){int temp;temp = *numx;*numx = *numy;*numy = temp;}
0 0
- 排序(五):冒泡排序
- 排序五:冒泡排序
- 八大排序算法(五)冒泡排序
- 排序算法(五):冒泡排序
- 排序算法 -- (五)冒泡排序
- 排序算法(五):冒泡排序
- 排序算法(五)冒泡排序
- 自学篇-冒泡排序(五)
- C/C++学习(五)冒泡排序
- 基础算法系列(五)排序算法之冒泡排序
- 八大排序算法之(五)冒泡排序
- 排序(之冒泡排序)
- 10-冒泡排序(排序)
- 排序(3)冒泡排序
- 排序(一) 冒泡排序
- 交换排序(冒泡排序)
- 排序问题(冒泡排序)
- 排序(1)冒泡排序
- mysql错误代码
- http的get和post区别
- 实习篇之补牙
- CSDN博客
- Android系统如何录制屏幕(录制成mp4格式)
- 排序(五):冒泡排序
- String的不变性
- centos 下配置hadoop2.5.0
- Thread详解
- 2014.03.16 网易游戏TTT计划实习生笔试题
- 替换空格及合并两个有序的数组
- poj1338 Ugly Numbers(技巧)
- grep在perl中的使用
- ruby中如何直接编译运行C代码