#初学算法# 归并排序与冒泡排序算法对比
来源:互联网 发布:南京程序员培训机构 编辑:程序博客网 时间:2024/05/16 07:10
最近刚看算法导论,想自己比较一下冒泡排序跟归并排序。
归并排序的算法复杂度:nlogn
冒泡排序的算法复杂度:n^2
第一次发博客,各位大虾有什么建议尽管提,非常感谢!
public class Sort {/** * @param * @author darkhorse_pxf */static int count=1; //用于计算归并排序操作次数static int count2=1; ////用于计算冒泡排序操作次数public static void main(String[] args) {int a[]={54,47,15,475,21,57,67,18,88,245};int b[]={54,47,15,475,21,57,67,18,88,245};System.out.println("归并排序:");mergeSort(a,0,a.length-1); //归并排序System.out.println("归并排序共执行"+count+"次");System.out.println("冒泡排序:");bubbleSort(b); //冒泡排序System.out.println("冒泡排序共执行"+count2+"次");/**测试Mergeint a[]={1,3,5,7,9,2,4,6,8,10};Merge.Merge(a, 0, 4, a.length-1);for(int i=0;i<a.length;i++){System.out.print(a[i]+" ");}System.out.println();*/}private static void bubbleSort(int[] b) { //冒泡排序int k;for(int i=0;i<b.length;i++){for(int j=i;j<b.length;j++){if(b[i]<=b[j]){k=b[i];b[i]=b[j];b[j]=k;count2++;}}for(int x=0;x<b.length;x++){System.out.print(b[x]+" ");}System.out.println();}}public static void mergeSort(int[] numbers,int firstNumber,int lastNumber) {if(firstNumber<lastNumber){int midleNumber=(firstNumber+lastNumber)/2;mergeSort(numbers,firstNumber,midleNumber);mergeSort(numbers,midleNumber+1,lastNumber);Merge(numbers, firstNumber, midleNumber, lastNumber);for(int i=0;i<numbers.length;i++){System.out.print(numbers[i]+" ");}System.out.println();}}public static void Merge(int numbers[],int p,int q,int r){int n1=q-p+1;int n2=r-q;int Left[]=new int[n1];int Right[]=new int[n2];for(int i=0;i<Left.length;i++){Left[i]=numbers[i+p];}for(int j=0;j<Right.length;j++){Right[j]=numbers[q+1+j];}int i=0;int j=0;while(p<=r){if(i==Left.length){while(j<Right.length){numbers[p++]=Right[j++];}break;}else if(j==Right.length){while(i<Left.length){numbers[p++]=Left[i++];}break;}if(Left[i]<=Right[j]){numbers[p++]=Left[i++];}else{numbers[p++]=Right[j++];}count++;}}}
运行结果:
0 0
- #初学算法# 归并排序与冒泡排序算法对比
- 归并与归并排序算法
- 排序算法--冒泡排序,归并排序,快速排序
- 常用排序算法的c++实现(冒泡,选择,插入,堆,shell,快速,归并 )与sort()对比
- 常用排序算法的c++实现(冒泡,选择,插入,堆,shell,快速,归并 )与sort()对比
- 排序算法,选择,插入,冒泡,希尔,归并
- 排序算法--冒泡、插入、归并、快排
- 常用排序算法总结(一)----冒泡排序,归并排序
- 算法学习 - 归并排序,快速排序,冒泡排序
- 冒泡排序算法与选择排序算法
- [数据结构与算法]归并排序
- 数据结构与算法-归并排序
- 数据结构与算法-----归并排序
- 【数据结构与算法】归并排序
- 【数据结构与算法】归并排序
- 排序算法-归并排序
- 排序算法------归并排序
- 排序算法-归并排序
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置(非遍历)
- C include预处理
- jQuery EasyUI教程地址
- 怎么样使用Redis来存储和查询ip数据
- 黑马程序员——java小结_014_map集合的输出
- #初学算法# 归并排序与冒泡排序算法对比
- 浏览器的定制与扩展
- Android字体加粗
- Android 4.2官方文档chm格式下载
- S5PC100——UART
- Highlight words in webbrowser control
- ST Nucleo mbed套件开发 一 MBED环境使用 以Nucleo-F401为例
- Cocos2d-x3.2与OpenGL渲染总结(一)Cocos2d-x3.2的渲染流程
- 松赞干布鎏金铜像