0
我有一个数组:如何数组排序开始的特定位置
int[] array = {1,2,3,4,5,6,7,8,9,10};
我想挑选分拣的起点。如果我选择6
输出应该是
(6,7,8,9,10,1,2,3,4,5)
我有一个数组:如何数组排序开始的特定位置
int[] array = {1,2,3,4,5,6,7,8,9,10};
我想挑选分拣的起点。如果我选择6
输出应该是
(6,7,8,9,10,1,2,3,4,5)
我会去的两个阶段:
如果您尝试根据您在代码中指定的数组索引位置进行排序,则可以使用下面的代码。
import java.util.Arrays;
公共类IndexBasedSort {
public static int[] getFirstIndexedArray(int[] originalArray, int arrayIndex) {
int[] firstIndexedArray = new int[arrayIndex];
for(int i=0;i<arrayIndex;i++){
firstIndexedArray[i] = originalArray[i];
}
return firstIndexedArray;
}
public static int[] getNextIndexedArray(int[] originalArray, int arrayIndex) {
int[] nextIndexedArray = new int[(originalArray.length - arrayIndex)];
for(int i=0;i<nextIndexedArray.length;i++) {
nextIndexedArray[i] = originalArray[i+arrayIndex];
}
return nextIndexedArray;
}
public static int[] sortArrayElements(int[] arrayElements) {
Arrays.sort(arrayElements);
return arrayElements;
}
public static int[] joinArrayElements(int[] firstArray, int[] nextArray) {
int[] joinedArray = new int[(firstArray.length + nextArray.length)];
for(int i=0;i<firstArray.length;i++) {
joinedArray[i] = firstArray[i];
}
for(int i=0;i<nextArray.length;i++) {
joinedArray[i+firstArray.length] = nextArray[i];
}
return joinedArray;
}
public static void printArrayElements(int[] arrayElements) {
System.out.print("Sorted Array: ");
for(int i=0;i<arrayElements.length;i++) {
System.out.print(arrayElements[i]+", ");
}
}
public static void run(int[] originalArray, int arrayIndex){
printArrayElements(joinArrayElements(sortArrayElements(getFirstIndexedArray
(originalArray, arrayIndex)), sortArrayElements(getNextIndexedArray(
originalArray, arrayIndex))));
}
public static void main(String[] args) {
int[] originalArray = {10,9,8,7,6,5,4,3,2,1};
int arrayIndex = 6;
run(originalArray, arrayIndex-1);
}
}
你可以给你的问题的另一个例子输入/输出,例如,如果什么输入:'INT []数组= {10 ,9,8,7,6,5,4,3,2,1};'和起点是'6'? – ggreiner 2012-02-20 16:19:03
你可以定义更多一点吗?如果数组是“{3,7,2,8,4,6,1,0,5,9}”,并且起点是4,该怎么办?结果应该是什么? – 2012-02-20 16:20:17
这是功课吗? – 2012-02-20 16:20:27