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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ma464526717 中级黑马   /  2016-1-28 14:28  /  354 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何进行希尔排序?

2 个回复

倒序浏览
  1. public class ShellSort {  
  2.     public static void shellSort(int[] data) {  
  3.         int j = 0;  
  4.         int temp = 0;  
  5.         for (int increment = data.length / 2; increment > 0; increment /= 2) {  
  6.             for (int i = increment; i < data.length; i++) {  
  7.                 temp = data[i];  
  8.                 for (j = i; j >= increment; j -= increment) {  
  9.                     if(temp > data[j - increment]){  
  10.                         data[j] = data[j - increment];  
  11.                     }else{  
  12.                         break;  
  13.                     }  
  14.                 }   
  15.                 data[j] = temp;  
  16.             }  
  17.         }  
  18.     }  
  19.   
  20.     public static void main(String[] args) {  
  21.         int[] data = new int[] { 5, 2, 8, 9, 1, 3 ,4};  
  22.   
  23.         System.out.println("未排序前");  
  24.         for (int i = 0; i < data.length; i++){  
  25.             System.out.print(data[i] + " ");  
  26.         }  
  27.               
  28.         shellSort(data);  
  29.          
  30.         System.out.println("\n排序后");  
  31.         for (int i = 0; i < data.length; i++)  
  32.             System.out.print(data[i] + " ");  
  33.     }  
  34.   
  35. }  
复制代码
回复 使用道具 举报
最外层折半
里面的进行直接插入排序
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马