算法
2015-07-01 10:12
176 查看
一:冒泡排序
把小的元素往前调或者把大的元素往后调,是相邻的两个元素比较,交换也发生在这两个元素之间,相同的两元素不会进行比较交换。
eg:6、1、9、8
第一轮比较:
第一步:6和1比较,6往后挪变为1、6、9、8
第二步:6和9比较,发现9比6大,不动,还是1、6、9、8
第三步:9和8比较,9往后挪变为1、6、8、9
第二轮轮询比,直到最后一轮
二:快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。
eg:6、2、7、3、8、9
先把6和9定义为第一个和最后一个
i=0,j=5,k=6
第一轮:
从最右边开始往前找,找到比6小的互换,3、2、7、6、8、9, (i=0,j=3,k=6)
从最左边开始往后找,找到比6大的互换,3、2、6、7、8、9 (i=2,j=3,k=6)
第N轮:重复第一轮的步骤,直到 i和j 碰头为止
三:插入排序
eg:【12】、15、9、20、6
第一轮:【12、15】、9、20、6
第二轮:【9、12、15】、20、6
第三轮:【9、12、15、20】、6
第四轮:【6、9、12、15、20】
把小的元素往前调或者把大的元素往后调,是相邻的两个元素比较,交换也发生在这两个元素之间,相同的两元素不会进行比较交换。
eg:6、1、9、8
第一轮比较:
第一步:6和1比较,6往后挪变为1、6、9、8
第二步:6和9比较,发现9比6大,不动,还是1、6、9、8
第三步:9和8比较,9往后挪变为1、6、8、9
第二轮轮询比,直到最后一轮
二:快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。
eg:6、2、7、3、8、9
先把6和9定义为第一个和最后一个
i=0,j=5,k=6
第一轮:
从最右边开始往前找,找到比6小的互换,3、2、7、6、8、9, (i=0,j=3,k=6)
从最左边开始往后找,找到比6大的互换,3、2、6、7、8、9 (i=2,j=3,k=6)
第N轮:重复第一轮的步骤,直到 i和j 碰头为止
三:插入排序
eg:【12】、15、9、20、6
第一轮:【12、15】、9、20、6
第二轮:【9、12、15】、20、6
第三轮:【9、12、15、20】、6
第四轮:【6、9、12、15、20】
相关文章推荐
- java.util.zip类 ZipInputStream
- UNIX/LINUX使用expect实现人机自动交互功能
- php和c通过socket进行通信
- 如何当一个android面试官
- apapche在windows2008服务器运行一段时间后服务关闭
- 【Unity】技巧集合2
- 系统调用和库函数的关系
- 集成Paypal相关问题
- PHP+MySQL分页原理实现
- [华为机试练习题]25.圆桌游戏
- (转)Android Support Percent百分比布局
- RTB撕开黑盒子 Part 4: Shady Bidding
- leetcode之twosum
- delphi DISQLite3使用例子
- RTB撕开黑盒子 Part 3: Beyond Surplus
- html页面发送请求处理json
- 算法设计:案例分析1(计数器控制的循环)
- java.util.zip类 ZipOutputStream
- C++访问Redis的mset 二进制数据接口封装方案
- iOS Crash收集框架