您的位置:首页 > 编程语言 > Java开发

Java合并数组的两个子有序段

2016-06-16 20:08 417 查看
</pre><pre>

//合并数组的两个子有序段

public class FindRightPlaceMid {

public static void findRightPlaceMid(int a[],int mid){
int temp,i=0,j=mid,k;
while(i<j){
//先判断j是否小于a.length,再判断a[i]>a[j],否则会有数组越界异常
//&&判断,若左半部分为flase,则不再判断右半部分了
if(j<a.length&&a[i]>a[j]){
temp = a[j];
for(k=j;k>i;k--){
a[k] = a[k-1];
}
a[i] = temp;
i++;
j++;
}else{
i++;
}
}
}
public static void main(String[] args){
int[] a={8,10,13,14,1,2,3,4,5,6,7};

prientutils.printArray(a);
findRightPlaceMid(a,4);
prientutils.printArray(a);

}

}


引申:

(1)如果数组的两个子有序序列都按将序排列,可以用类似的方法来解决

(2)若两个子序列一个升序一个将序,可将其中一个逆序,再用上述方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: