算法学习之旅,中级篇(3)-–冒泡排序
来源:互联网 发布:东北大学软件工程硕士 编辑:程序博客网 时间:2024/05/17 06:03
介绍
重复遍历数列,一次比较两个数,顺序有误就交换位置。
分析
首先,比较相邻的元素,如果不符合定义的排序规则(比如从小到大,如果后一个数比前一个数小,就是不符合定义的排序规则),就交换两个数的位置。
然后,对每一对相邻的元素做相同的比较操作,从开始第一对到倒数一对。最后的元素会是最小或者最大的数。
最后,对所有的元素都进行相同的比较操作,知道没有任何一个数需要比较后,冒泡排序就完成了。
代码
#include<stdio.h>#include<stdlib.h>#define SIZE 8void Bubble_Sort(int a[],int n){ int i,j,temp; for(j=0;j<n-1;j++) { for(i=0;i<n-1-j;i++) { if(a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; } } } return;}int main(){ int number[SIZE]={95,2,4,3,6,43,2,4}; int i; for(i=0;i<SIZE-1;i++) printf("%d ",number[i]); printf("%d\n",number[i]); Bubble_Sort(number,SIZE); for(i=0;i<SIZE-1;i++) printf("%d ",number[i]); printf("%d\n",number[i]); system("pause"); return 0;}
遇到的问题
冒泡排序是一种稳定的排序算法,最坏的时间复杂度是逆序重新排序,每个元素都要交换一次,时间复杂度是o(n^2);
阅读全文
0 0
- 算法学习之旅,中级篇(3)-–冒泡排序
- 算法学习之旅,中级篇(1)-–选择排序
- 算法学习之旅,中级篇(2)-–插入排序
- 算法学习之旅,中级篇(4)-–快速排序
- 算法学习之路(冒泡排序)
- 算法学习之冒泡排序
- 学习算法之冒泡排序
- 算法学习之排序算法:冒泡排序
- 算法学习之旅,中级篇(8)-–分治之二分搜索(递归)
- 算法学习之旅,中级篇(5)-–递归之杨辉三角
- 算法学习之旅,中级篇(6)-–递归之斐波拉契数列
- 算法学习之旅,中级篇(7)-–递归之汉诺塔
- 排序算法-中级篇(归并排序)
- 经典算法学习:排序之冒泡排序
- 算法学习之排序(2)--冒泡排序
- [学习笔记]排序算法之冒泡排序
- 排序算法-中级篇
- 算法学习之排序算法(一)(冒泡法)
- 2017百度之星复赛 hdu 6148 Valley Numer (数位dp)
- 8月18日集训
- ConcurrentHashMap的JDK1.7实现
- 《linux设备驱动开发详解》中globalmem代码笔记
- Python基本语法_函数属性 & 参数类型 & 偏函数的应用
- 算法学习之旅,中级篇(3)-–冒泡排序
- MapReduce中从Input split到Map的联系
- 燕麦云何洋开讲 | 既安全又简单?我的产品设计心经分享(下)
- Effective C++读书笔记01条款37
- Pyglet教程
- Linux分析apache日志获取最多访问的前10个IP
- 1033. 旧键盘打字(20)
- 什么是Punycode-
- hashCode()、equals()以及compareTo()方法的理解 (整理)