gpt4 book ai didi

java - 如何在插入排序中修复这个未排序的数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:04 28 4
gpt4 key购买 nike

我正在创建一个插入排序,第一个正在运行并返回一个排序数组:

// {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}

但另一个不是由于第二个代码的一个问题,只是将“元素”替换为“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] 和元素是相同的。

最佳答案

你可以试试这样的..

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]);
};

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]);
}

关于java - 如何在插入排序中修复这个未排序的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55862772/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com