运用递归进行二分查找

℡╲_俬逩灬. 提交于 2020-01-07 20:44:02

package com.lm.digui;

 

import java.util.Arrays;

 

public class MergonQuery {

public static void main(String[] args) {

int merget[] = {2, 5, 39, 2, 2, 4, 2, 0, 74, 7, 5, 6, 3, 2, 1};

System.out.println(Arrays.toString(megerSort(merget)));

 

}

 

private static int[] megerSort(int[] merget) {

if (merget.length < 2) {

return merget;

}

int mid = merget.length / 2;

int[] left = Arrays.copyOfRange(merget, 0, mid);

int[] after = Arrays.copyOfRange(merget, mid, merget.length);

 

return sertNumber(megerSort(left), megerSort(after));

 

}

 

private static int[] sertNumber(int[] left, int[] after) {

int[] result = new int[left.length + after.length];

for (int index = 0, i = 0, j = 0; index < result.length; index++) {

if (i >= left.length) {

result[index] = after[j++];

} else if (j >= after.length) {

result[index] = left[i++];

} else if (left[i] > after[j]) {

result[index] = after[j++];

} else {

result[index] = left[i++];

}

}

return result;

}

 

 

}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!