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

© love~陌 中级黑马   /  2014-6-5 20:07  /  1318 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组排序到了现在才讲,开课都过了15天了,时间过去一多半了,培训期马上结束了,班里人还没认识几个···

  1. package practice;

  2. public class ArrayDemo {

  3.         /**
  4.          * @param args
  5.          */
  6.         int [] arr={1,2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,
  7.                         12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,
  8.                         16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,
  9.                         89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,
  10.                         1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,
  11.                         12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,
  12.                         5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,
  13.                         4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,
  14.                         16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,
  15.                         15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  16.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  17.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  18.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  19.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  20.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  21.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  22.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  23.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  24.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  25.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  26.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  27.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  28.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  29.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  30.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  31.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  32.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  33.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  34.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  35.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  36.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  37.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  38.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  39.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  40.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  41.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  42.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  43.                         2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
  44.                         2,15,16,4879,5454,12564,1165,12,89,41};
  45.         public static void main(String[] args) {
  46.                
  47.                 Time t1=new ArrayDemo().new Time1();
  48.                 System.out.println(t1.getTime());
  49.                 Time t2=new ArrayDemo().new Time2();
  50.                 t2.getTime();
  51.                 System.out.println(t2.getTime());
  52.         }
  53.         class Time1 extends Time{

  54.                 @Override
  55.                 public void runCode() {
  56.                         // TODO Auto-generated method stub
  57.                         ArrayDemo.selectSort(new ArrayDemo().arr);
  58.                 }
  59.                
  60.         }
  61.         class Time2 extends Time{
  62.                
  63.                 @Override
  64.                 public void runCode() {
  65.                         // TODO Auto-generated method stub
  66.                         ArrayDemo.selectSort(new ArrayDemo().arr);
  67.                 }
  68.                
  69.         }
  70.        
  71.         //选择排序
  72.         public static int[] selectSort(int [] arr){
  73.                 for (int i = 0; i < arr.length; i++) {
  74.                         for (int j = 0; j < arr.length; j++) {
  75.                                 if (arr[i] < arr[j]) {
  76.                                         swap(arr, j, i);
  77.                                 }
  78.                         }
  79.                 }
  80.                 return arr;
  81.         }
  82.        
  83.        
  84.         //冒泡排序
  85.         public static int[] bubbleSort(int[]arr){
  86.                 for (int i = 0; i < arr.length; i++) {
  87.                         for (int j = 0; j < arr.length-i-1; j++) {
  88.                                 if (arr[j] > arr[j+1]) {
  89.                                         swap(arr, j, j+1);
  90.                                 }
  91.                         }
  92.                 }
  93.                 return arr;
  94.         }
  95.        
  96.         //位置互换
  97.         private static void swap(int[] arr,int m,int n){
  98.                 if (arr[m] > arr[n]) {
  99.                         int temp=arr[m];
  100.                         arr[m]=arr[n];
  101.                         arr[n]=temp;
  102.                 }
  103.         }

  104. }

  105. abstract class Time{
  106.        
  107.         public  abstract void runCode();
  108.         public  final long getTime(){
  109.                 long beginTime=System.currentTimeMillis();
  110.                 runCode();
  111.                 return System.currentTimeMillis()-beginTime;
  112.         }
  113. }
复制代码
这个数组有点牛逼,一顿疯狂复制粘贴,为了区分二者效率,没办法。

哥们复制一下代码。运行一下就知道了。

数组比较大的时候,BubbleSort确实要比SelectSort效率高,比如我现在的是数组,从运行结果就能明显看出来




冒泡和选择的效率问题.png (65.11 KB, 下载次数: 44)

冒泡和选择的效率问题.png

2 个回复

正序浏览
此帖仅作者可见
使用道具 举报
此帖仅作者可见
使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马