• 复习下几个排序


    package ts;

    public class QuickSoft {
    public static void main(String[] args) {
    int[] nums = new int[100000];

    for (int i = 0; i < nums.length; i++) {
    nums[i] = (int) (100 * Math.random());
    }
    long a = System.currentTimeMillis();
    quickSoft(nums, 0, nums.length - 1);
    System.out.println("quick time :"
    + ((long) System.currentTimeMillis() - a));

    // for(int i=0;i<nums.length;i++)
    // {
    // System.out.print(nums[i]+" ");
    // }
    // System.out.println();

    for (int i = 0; i < nums.length; i++) {
    nums[i] = (int) (100 * Math.random());
    }
    a = System.currentTimeMillis();
    maopao(nums);
    System.out.println("maopao time :"
    + ((long) System.currentTimeMillis() - a));

    // for(int i=0;i<nums.length;i++)
    // {
    // System.out.print(nums[i]+" ");
    // }
    // System.out.println();

    for (int i = 0; i < nums.length; i++) {
    nums[i] = (int) (100 * Math.random());
    }
    long ab = System.currentTimeMillis();
    HeapSort(nums);
    System.out.println("duipaixu time :"
    + ((long) System.currentTimeMillis() - ab));
    // System.out.println(System.currentTimeMillis());

    // for(int i=0;i<nums.length;i++)
    // {
    // System.out.print(nums[i]+" ");
    // }
    // System.out.println();

    for (int i = 0; i < nums.length; i++) {
    nums[i] = (int) (100 * Math.random());
    }
    a = System.currentTimeMillis();
    // SelectSort(nums);
    System.out.println("xuanze time :"
    + ((long) System.currentTimeMillis() - a));


    // for(int i=0;i<nums.length;i++)
    // {
    // System.out.print(nums[i]+" ");
    // }
    // System.out.println();

    for (int i = 0; i < nums.length; i++) {
    nums[i] = (int) (100 * Math.random());
    }
    a = System.currentTimeMillis();
    shell(nums);
    System.out.println("xier time :"
    + ((long) System.currentTimeMillis() - a));


    // for(int i=0;i<nums.length;i++)
    // {
    // System.out.print(nums[i]+" ");
    // }
    // System.out.println();

    for (int i = 0; i < nums.length; i++) {
    nums[i] = (int) (100 * Math.random());
    }
    a = System.currentTimeMillis();
    insertionSort(nums);
    System.out.println("charu time :"
    + ((long) System.currentTimeMillis() - a));


    // for(int i=0;i<nums.length;i++)
    // {
    // System.out.print(nums[i]+" ");
    // }
    // System.out.println();
    }


    public static void SelectSort(int[] a) {
    int Index=a.length;
    int i=0, j=0, k=0;
    int MinValue=0;
    int IndexMin=0;
    int Temp=0;
    for (i = 0; i<Index - 1; i++){MinValue = 32767;
    IndexMin = 0;
    for (j = i; j < Index; j++){
    if (a[j] < MinValue)
    {
    MinValue = a[j];
    IndexMin =j;
    }
    }
    a[IndexMin]=a[i];
    a[i]=MinValue; }

    }
    public static void maopao(int[] a) {
    boolean flag = true;
    int index=a.length-1;
    for (int i = 0; i < index; i++) {
    flag = true;
    int j=index;
    for (; j >i; j--) {
    if (a[j] < a[j - 1]) {
    int temp = a[j];
    a[j] = a[j - 1];
    a[j -1] = temp;
    flag = false;
    }

    }
    if (flag)
    return;

    }
    }

    public static void quickSoft(int[] a, int I, int J) {

    if (I >= J)
    return;
    int i = I, j = J;
    boolean right = true;
    while (i < j) {
    if (a[i] > a[j]) {
    int temp = a[i];
    a[i] = a[j];
    a[j] = temp;
    right = (right == true) ? false : true;
    }
    if (right)
    j--;
    else
    i++;

    }

    quickSoft(a, I, i - 1);
    quickSoft(a, j + 1, J);
    }

    public static void creatHeap(int[] a,int n,int h)
    {
    int i=h;

    int j=2*i+1;
    boolean flag=false;

    while(j<n&&flag!=true)
    {
    int temp=a[i];
    if(j<n-1&&a[j]<a[j+1]) j++;
    if(temp>a[j]) flag=true;
    else{
    a[i]=a[j];
    i=j;
    j=2*i+1;
    a[i]=temp;
    }
    }
    }
    public static void initHeap(int[] a)
    {
    int n=a.length;
    for(int i=(n-1)/2;i>=0;i--)
    creatHeap(a,n,i);
    }

    public static void HeapSort(int[] a)
    {
    int n=a.length;
    int temp;
    initHeap(a);
    for(int i=n-1;i>0;i--)
    {
    temp=a[0];
    a[0]=a[i];
    a[i]=temp;
    creatHeap(a,i,0);
    }
    }

    public static void shell(int[] x) {
    // 分组
    for (int increment = x.length / 2; increment > 0; increment /= 2) {
    // 每个组内排序
    for (int i = increment; i < x.length; i++) {
    int temp = x[i];
    int j = 0;
    for (j = i; j >= increment; j -= increment) {
    if (temp < x[j - increment]) {
    x[j] = x[j - increment];
    } else {
    break;
    }
    }
    x[j] = temp;
    }
    }
    }

    public static void insertionSort(int[] a){

    int in,out;
    int nElems=a.length;
    for(out=1;out<nElems;out++){

    int temp=a[out];

    in=out;

    while(in>0 && a[in-1]>=temp){

    a[in]=a[in-1];

    in--;

    }

    a[in]=temp;

    }

    }


    }

  • 相关阅读:
    补间动画
    nginx+php的配置
    腾讯QQ首次在PC端采用气泡式聊天界面(from:36kr)
    mysql errno:13
    PHP高级面试题
    Nginx下fastcgi_split_path_info导致CodeIgniter配置问题
    ngx_http_fastcgi_module 的那些事
    PowerShell 定时刷新查看文件内容
    解决 VMWARE MAC 10.12无法全屏的问题
    libcurl 函数curl_easy_perform在release下崩溃的问题
  • 原文地址:https://www.cnblogs.com/drawwindows/p/2200611.html
Copyright © 2020-2023  润新知