二分排序(java)

                       

基本思想就是:将待排序元素分成大小大致相同 的两个子集合,分别 对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。二分排序(java)_第1张图片

二分排序(java)_第2张图片

package com.suanfa;/** * 二分排序 * @author Administrator * */public class Merge {       //递归分成小部分    public void merge_sort(int[] arrays,int start,int end){        if(startint 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]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" ");        }        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

运行结果
二分排序(java)_第3张图片

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

你可能感兴趣的:(二分排序(java))