A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yang1352546 中级黑马   /  2014-6-5 23:53  /  957 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

冒泡排序效率高么?为什么

2 个回复

倒序浏览
本帖最后由 我为你着迷 于 2014-6-6 08:07 编辑

冒泡排序和选择排序的效率都不高 ,因为这2种排序在堆内存中换位置比较消耗资源。虽然不高但是有不高的好处,代码简单,看起来比较直观好记。毕老师不是说了嘛 ,最快的排序是希尔排序,是以三层循环加上位运算的排序,是速度最快的效率最高的,但是比较复杂。晕,代码看起来有点乱。
  1. class  ArrayText3
  2. {
  3.                
  4.                 //选择排序。
  5.                 public static void selectSort(int[] arr)
  6.                 {
  7.                                 for(int x=0;x<arr.length;x++)
  8.                                 {
  9.                                                 for(int y=x+1;y<arr.length-1;y++)
  10.                                                 {
  11.                                                         if(arr[x]>arr[y])
  12.                                                   {
  13.                                                                   int temp=arr[x];
  14.                                                                   arr[x]=arr[y];
  15.                                                                   arr[y]=temp;
  16.                                                                   
  17.                                                   }        
  18.                                                 }        
  19.                                 }        
  20.                 }
  21.                
  22.                 //冒泡排序。
  23.                 public static void bubbleSort(int[] arr)
  24.           {
  25.                           for(int x=0;x<arr.length-1;x++)
  26.                           {
  27.                                           int y=0;y<arr.length-x-1;y++)
  28.                                           {
  29.                                                   if(arr[y]>arr[y+1})
  30.                                              {
  31.                                                int temp=arr[y];
  32.                                                arr[y]=arr[y+1];
  33.                                                arr[y+1]=temp;
  34.                                                
  35.                                              }
  36.                          }        
  37.                           }        
  38.           }
  39.                
  40.                
  41.                 public static void main(String[] args)
  42.                 {
  43.                                 //排序前。
  44.                                 int[] arr={3,1,4,5,6,8};
  45.                                 printArray(arr);
  46.                                 
  47.                                 //排序后。
  48.                                 selectSort(arr);
  49.                                 //bubbleSort(arr);
  50.                                 printArray(arr);
  51.                                 
  52.                 }
  53.                
  54.                 //打印数组中的元素,元素间用逗号隔开。
  55.                 public static void printArray(int[] arr)
  56.                 {
  57.                                 System.out.println("[");
  58.                                 for(int x=0;x<arr.length;x++)
  59.                                 {
  60.                                                 if(x!=arr.length-1)//这句的话意思是x有等于arr.length-1和x不等于arr.length-1这两种情况。
  61.                                                         System.out.print(arr[x]+",");
  62.                                                 else
  63.                                                   System.out.println(arr[x]+"]");
  64.                                 }        
  65.                 }
  66. }
复制代码

回复 使用道具 举报
java 内部都帮我们实现了 不像c 语言 什么都要自己写
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马