Chinaunix首页 | 论坛 | 博客
  • 博客访问: 255384
  • 博文数量: 164
  • 博客积分: 60
  • 博客等级: 民兵
  • 技术积分: 1129
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 21:55
文章分类

全部博文(164)

文章存档

2017年(2)

2015年(67)

2014年(95)

我的朋友

分类: Java

2015-05-12 11:41:14




点击(此处)折叠或打开

  1. package com.lhk.sortDemo;

  2. public interface Sort {
  3.     public boolean sort(int[] arr);
  4. }

点击(此处)折叠或打开

  1. package com.lhk.sortDemo;

  2. public class InsertSort implements Sort {

  3.     public boolean sort(int[] arr) {
  4.         if(arr == null){
  5.             return false;
  6.         }
  7.         
  8.         if(arr.length <= 1){
  9.             return true;
  10.         }
  11.         
  12.         // 比较次数
  13.         int compareNum = 0;
  14.                 
  15.         // 交换次数
  16.         int swapNum = 0;
  17.         
  18.         int length = arr.length;
  19.         
  20.         int temp;
  21.         int j;
  22.         for(int i = 1; i < length ; i++){
  23.             compareNum++;
  24.             if(arr[i] < arr[i - 1]){
  25.                 temp = arr[i];
  26.                 for(j = i - 1; arr[j] > temp; j--){
  27.                     arr[j+1] = arr[j];
  28.                     swapNum++;
  29.                 }
  30.                 arr[j + 1] = temp;
  31.                 swapNum++;
  32.             }
  33.         }
  34.         
  35.         System.out.println("对比次数: " + compareNum + " 交换次数 :" + swapNum);
  36.         return true;
  37.     }
  38. }


点击(此处)折叠或打开

  1. package com.lhk.sortDemo;

  2. import java.util.Arrays;

  3. public class SortDemo1 {

  4.     /**
  5.      * @param args
  6.      */
  7.     public static void main(String[] args) {

  8.         int[] arr = {1,4,6,8,1,11,34,2,67,5,1,9,10,13,2,4,5};
  9.         
  10.         // 冒泡排序
  11. //        Sort bubbleSort = new BubbleSort();
  12. //        System.out.println("bubble sort");
  13. //        System.out.println("before sort :" + Arrays.toString(arr));
  14. //        bubbleSort.sort(arr);
  15. //        System.out.println("after sort :" + Arrays.toString(arr));
  16.         
  17.         // 选择排序
  18. //        Sort selectSort = new SelectSort();
  19. //        System.out.println("select sort");
  20. //        System.out.println("before sort :" + Arrays.toString(arr));
  21. //        selectSort.sort(arr);
  22. //        System.out.println("after sort :" + Arrays.toString(arr));
  23.         
  24.         // 直接插入排序
  25.         Sort insertSort = new InsertSort();
  26.         System.out.println("insertSort sort");
  27.         System.out.println("before sort :" + Arrays.toString(arr));
  28.         insertSort.sort(arr);
  29.         System.out.println("after sort :" + Arrays.toString(arr));
  30.     }

  31. }
运行结果:
insertSort sort
before sort :[1, 4, 6, 8, 1, 11, 34, 2, 67, 5, 1, 9, 10, 13, 2, 4, 5]
对比次数: 16  交换次数  :66
after sort :[1, 1, 1, 2, 2, 4, 4, 5, 5, 6, 8, 9, 10, 11, 13, 34, 67]


阅读(705) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~