1. 程式人生 > >二分排序(java)

二分排序(java)

                       

基本思想就是:將待排序元素分成大小大致相同 的兩個子集合,分別 對兩個子集合進行排序,最終將排好序的子集合合併成所要求的排好序的集合。這裡寫圖片描述

這裡寫圖片描述

package com.suanfa;/** * 二分排序 * @author Administrator * */public class
Merge {
       //遞迴分成小部分    public void merge_sort(int[] arrays,int start,int end){        if(start<end){            int m=(start+end)/2;            merge_sort(arrays,start,m);            merge_sort(arrays,m+1
,end);            combin_arrays(arrays,start,m,end);            }    }    //合併陣列    public void combin_arrays(int[] arrays,int start,int m,int end){        int
length=end-start+1;        int temp[]=new int[length];//用來存放比較的陣列,用完複製回到原來的陣列        int i=start;        int j=m+1;        int c=0;        while(i<=m &&j<=end){            if(arrays[i]<arrays[j]){                temp[c]=arrays[i];                i++;                c++;            }else{                temp[c]=arrays[j];                j++;                c++;            }        }        while(i<=m){            temp[c]=arrays[i];            i++;            c++;        }        while(j<=end){        temp[c]=arrays[j];        j++;        c++;        }        c=0;        for(int t=start;t<=end;t++,c++){            arrays[t]=temp[c];        }        snp(arrays);    }    //列印陣列    public void snp(int[] arrays){        for(int i=0;i<arrays.length;i++){       System.out.print(arrays[i]+" ");        }        System.out.println();    }    public static void main(String[] args)     {        Merge m=new Merge();        int a[]={5,4,10,8,7,9,11,13,12,15,14};        m.merge_sort(a,0,a.length-1);    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

執行結果
這裡寫圖片描述

           

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow