如果整数已按升序排序,您将如何插入排序数组?有人告诉我使用二进制搜索,但这只会返回元素的位置。
伪代码中的一个例子就是。
答案 0 :(得分:2)
答案 1 :(得分:1)
假设您正在使用静态数组,例如没有链接列表
以下是一种使用字符串数组的方法,您可以根据自己的要求进行自定义
//使用有序的项目列表创建阵列 String [] sortedArray = new String [] {“ant”,“bat”,“cat”,“dog”};
// Search for a non-existent item and then insert it
int index = Arrays.binarySearch(sortedArray, "cow");
if (index < 0) {
// Compute the insert index
int insertIndex = -index-1;
// Insert the new item into sortedArray. The example here creates
// a new larger array to hold the new item.
String[] newSortedArray = new String[sortedArray.length+1];
System.arraycopy(sortedArray, 0, newSortedArray, 0, insertIndex);
System.arraycopy(sortedArray, insertIndex,
newSortedArray, insertIndex+1,
sortedArray.length-insertIndex);
newSortedArray[insertIndex] = "cow";
sortedArray = newSortedArray;
}
参考http://www.exampledepot.com/egs/java.util/coll_InsertInArray.html