java归并,快速排序

package com.agl.exea.book;

public class MegerSort {

public static void main(String[] args){

int[] a = {2,3,1,9,50,-1};
meger(a,0,a.length-1);
for(Integer i: a){

System.out.print(i+"**");
}
}

public static void meger(int[] a,int left ,int right){

if(left==right){
return;
}

int center = (left+right)/2;
meger(a,left,center);
meger(a,center+1,right);
msort(a,left,center,right);
}

private static void msort(int[] a, int left, int center, int right) {

int size = (right-left)+1;
int[] tmp = new int[size];
int tmp_check =0;
int l = left;
int r = right;
right = center+1;
while(tmp_check < tmp.length && left<= center && right <=r){
if(a[left]>a[right]){

tmp[tmp_check] = a[left];left++;
}else{
tmp[tmp_check] = a[right]; right++;
}
tmp_check ++;
}

while(right <=r){
tmp[tmp_check] = a[right]; tmp_check ++; right++;
}
while(left <= center){
tmp[tmp_check] = a[left]; tmp_check ++; left++;
}

System.arraycopy(tmp, 0, a, l, tmp.length);
}

}

//快速排序
package com.agl.exea.book;

public class QuicklySort {

public static void main(String[] args) {

int[] a = {2,1,3,0,9,-1,200,12,3,2};

quick(a,0,a.length-1);
for(Integer i : a){

System.out.print(i+"\t");
}
}

public static void quick(int[] a,int left, int right){

if(left >= right){

return;
}

int tmp = a[left];
int k = left;
int r = right;
left = left +1;
int mm=0;
while(left<right){

while(a[left] < tmp && left<right){

left ++;
}
while(a[right] > tmp && left<right){
right --;
}

if( left<right){
mm = a[left];
a[left] = a[right];
a[right] = mm;
left++;
right--;

}else{

break;
}
}

if(left>0){
mm = a[left-1];
a[left-1] = tmp;
a[k] = mm;
}


quick(a,k,left-1);
quick(a,left,r);


}



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值