桶排序算法原理代码
package com.aaa.advsort;
/**
* 归并排序,实现两个有序数组的合并排序;
* @author 张晨光
*
*/
public class MergeTest {
public static void main(String[] args) {
int []a={1,8,11,19,23};
int[]b={3,4,7,12};
//将两个数组进行归并,得到一个新的数组
int[]c=merge(a,b);
//最后遍历结果c数组;
System.out.println("归并后的数组为:");
for(int num:c){
System.out.print(num+" ");
}
}
/**
* @param a 待排序数组a
* @param b 待排序数组b
* @return a b数组归并后的数组;
*/
private static int[] merge(int[] a, int[] b) {
//定义归并后的数组为tempArr
int[]tempArr=new int[a.length+b.length];
//数组的下标;
int ai=0; //表示数组a的下标;
int bi=0; //表示数组b的下标;
int ti=0; //表示数组temp结果的下标;
//待排序数组 最小值的比较,最小的放到tempArr里面
while(ai<a.length && bi<b.length){
if(a[ai]<=b[bi])
tempArr[ti++]=a[ai++]; //先赋值,然后下标移动到下一个位置;
else
tempArr[ti++]=b[bi++];
}
//如果某一个数组长度已经未完毕,则剩下的数据,依次放入归并结果数组tempArr
while(ai<a.length)tempArr[ti++]=a[ai++];
while(bi<b.length)tempArr[ti++]=b[bi++];
return tempArr;
}
}
- 点赞
- 收藏
- 关注作者
评论(0)