• HierSort(希尔)————Java


    利用Java进行希尔排序(元素中有0会有问题),步长经过调试length/2+1最合适。

     1 import java.util.Scanner;
     2 
     3 public class HierSort {
     4     private static int array[] = new int[100000];
     5 
     6     private static void setArray(int length){
     7         Scanner scanner = new Scanner(System.in);
     8         System.out.println("Please entry Array elements:");
     9         for (int i = 0; i < length; i++) {
    10             int num = scanner.nextInt();
    11             array[i] = num;
    12         }
    13     }
    14 
    15     private static void show(int length){
    16         System.out.println("Output this array:");
    17         for (int i = 0; i < length; i++) {
    18             System.out.print(array[i] + " ");
    19         }
    20     }
    21 
    22     private static void Hier(int length){
    23         // define a flag as this HieSort of path
    24         int flag;
    25         flag = length / 2 + 1;
    26         while (flag > 0){
    27             for (int i = 0; i < length; i++) {
    28                 // judge of edge because the length less than the length of array
    29                 if (array[i] > array[i+flag] && array[i+flag] != array[length]){
    30                     int swap;
    31                     swap = array[i+flag];
    32                     array[i+flag] = array[i];
    33                     array[i] = swap;
    34                 }
    35             }
    36 //            System.out.println(flag);
    37             // sub this flag util the f lag equals one
    38             flag--;
    39         }
    40     }
    41 
    42     public static void main(String[] args){
    43             int length;
    44             Scanner scanner = new Scanner(System.in);
    45             System.out.println("Please the length of array(0<x<10000):");
    46             length = scanner.nextInt();
    47             setArray(length);
    48             Hier(length);
    49             show(length);
    50     }
    51 }
  • 相关阅读:
    Docker安装
    MVC-HtmlHelper简单总结
    D3.js
    分布式事务seata
    彻底搞懂JAVA路径问题
    idea 代码生成
    自动生成 serialVersionUID 的设置
    狂神说SSM框架系列连载
    缓存穿透、缓存击穿、缓存雪崩区别和解决方案
    多线程
  • 原文地址:https://www.cnblogs.com/future-dream/p/10353903.html
Copyright © 2020-2023  润新知