算法1-两个由小到大的有序集合合并成一个由大到小的集合(JAVA实现)

public class ArrSort_TwoToOne {
	
	public static void main(String[] args){
		//初始化数组
		int[] arr1={2,4,8};
		int[] arr2={1,2,3,4,5,6,9,10};
		//初始化计数变量
		int s1=arr1.length-1, s2=arr2.length-1, s3=s1+s2+2, k=0;
		//初始化结果集数组
		int[] resArr = new int[s3];
		
		//两个数组进行比较, 比较的次数为长度较短的数组的长度(即arr1的长度)
		while(s1 >= 0 && s2 >= 0){
			if(arr1[s1] > arr2[s2]){
				resArr[k++] = arr1[s1--];
			}else{
				resArr[k++] = arr2[s2--];
			}
		}
		
		System.out.println(" s1: " + s1 + " , s2 : " + s2 + ", k: " + k);
		//打印结果集
		System.out.println("第一次比较后的结果:");
		for(int t=0; t<s3; System.out.print(resArr[t++] + ", "));
		
		while(s1>=0){
			resArr[k++] = arr1[s1--];
		}
		
		while(s2>=0){
			resArr[k++] = arr2[s2--];
		}
		
		//打印结果集
		System.out.println("第二次比较后的结果:");
		for(int t=0; t<s3; System.out.print(resArr[t++] + ", "));
	}
}


猜你喜欢

转载自blog.csdn.net/cosisis/article/details/78254653