首页 > 代码库 > 冒泡排序
冒泡排序
作者:禅楼望月(http://www.cnblogs.com/yaoyinglong/)
冒泡排序是非常著名的排序算法,记得大学VB可学完之后,就只记得冒泡排序了。
冒泡排序基本思想
依次比较相邻两个元素(第0和第1,第1和第2,……),如果发现前一个数据大于后一个数据,则交换它们。经过第一趟排序,最大的元素“冒”到了最后。
由此可见,每趟交换结束,不仅能将当前最大值“冒”到最后,还能部分理顺前面其他元素;这样一旦某趟排序没有发生交换,则即可提前结束排序。当然最坏的情况下,也需要n-1趟排序。
图解冒泡排序
Java代码解析:
public static <T extends Comparable<T>> void BubbleSort(T[] datas){ int swapNum=0; T tmp=null; for(int i=0; i<datas.length; i++){ swapNum=0; for(int j=0; j<datas.length-i-1; j++){ if(datas[j].compareTo(datas[j+1])>0){ tmp=datas[j]; datas[j]=datas[j+1]; datas[j+1]=tmp; swapNum++; } } if(swapNum==0){ System.out.println("第"+(i+1)+"躺排序,该趟排序交换位置的次数为0,循环跳出"); System.out.println(Arrays.toString(datas)); break; }else { System.out.println("第"+(i+1)+"躺排序"); System.out.println(Arrays.toString(datas)); } }}
冒泡排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。