我正在创建一个插入排序,第一个正在工作并返回一个排序后的数组:
// {9, 8, 3, 13, 87, 12, 1, 99} the unsorted list
static int[] insertionSort(int[] a){
for (int i = 1; i < a.length - 1; i++) {
int element = a[i];
int j = i - 1;
while(j >= 0 && a[j] > element){
a[j+1] = a[j];
j--;
}
a[j+1] = element;
}
return a;
}
// returns {1,3,8,9,12,13,67}
但是另一个不是由于第二个代码中的一个问题而引起的,只需将“ element”替换为“ a [i]”即可,
// {9, 8, 3, 13, 87, 12, 1, 99} the unsorted list
static int[] insertionSort(int[] a){
for (int i = 1; i < a.length - 1; i++) {
int element = a[i]; // what
int j = i - 1;
while(j >= 0 && a[j] > a[i]){
a[j+1] = a[j];
j--;
}
a[j+1] = a[i];
}
return a;
}
// returns {9,9,9,13,87,87,87}
据我所知a [i]和元素是相同的。
答案 0 :(得分:0)
您可以尝试这样的事情。
int [] array = {9, 8, 3, 13, 87, 12, 1, 99};
Arrays.sort(array);
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
};
OR
int [] array = {9, 8, 3, 13, 87, 12, 1, 99};
int temp;
for (int i = 1; i < array.length; i++) {
for (int j = i; j > 0; j--) {
if (array[j] < array [j - 1]) {
temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}