冒泡排序的2种写法

来源:互联网 发布:淘宝联盟导购推广教程 编辑:程序博客网 时间:2024/04/29 22:40

今日复习基础知识准备校招的一大波笔试面试,很久之前学过的东西基本上忘光了,复习到冒泡排序被卡住了,我们都知道冒泡排序一般有2大类思想:小的数值往上冒或大的数值往下沉,这里的“上”指的是数组左边,“下”指的是右边,小弟不才,区分一下,如果写的不对,还望见谅指正。


1、小的数值往上冒

for(int i = 0;i < length-1;i++){  for(int j = length-1;j > i;j--){    if(A[j-1] > A[j]){    reverse(A,j-1,j);  }}
2、大的数值往下沉

for(int i = length-1;i > 0;i--){  for(int j = 0;j < i;j++){    if(A[j+1] < A[j]){      reverse(A,j+1,j);  }}
这2种得到的结果都是升序排序


虽然就复杂度来说,这2种写法并无不同,个人觉得不以优化为目的的算法研究都是瞎折腾,但看过许多奇形怪状的笔试面试题,不知道我会不会遇到这种蛋疼的题目,所以就花点时间搞一搞,聊胜于无嘛。


原创粉丝点击