【发布时间】:2021-01-09 03:15:44
【问题描述】:
我正在尝试编写冒泡排序、选择排序和插入排序 MYSELF。但是,我在插入排序时遇到了麻烦。我将提供我的代码以及每一行的作用
public void sortMethod() {
int count = 1;
for (int j = 0; j < Unsorted.length - 1; j++) {
int index = 0;
if (Unsorted[count] < Unsorted[count - 1]) {
int temp = Unsorted[count];
for (int i = count; i > 0; i--) {
if (Unsorted[i] > Unsorted[count]) {
index = i;
Unsorted[i] = Unsorted[i - 1];
}
}
Unsorted[index] = Unsorted[count];
}
count = count + 1;
}
}
好的,所以 int count 是要找出排序数组从哪里开始。然后我声明 index 以查找在排序数组之后放置元素的位置,并为未排序数组的第一个元素声明一个临时 int,如果它小于排序数组的最后一个元素。然后它反转数组直到第一个元素,如果它大于我添加的元素,则将索引分配给它的索引。从本质上讲,我知道把它放在哪里。然后 unsorted[I] = unsorted[I - 1] 将已排序数组从未排序数组的第一个元素所属的位置移动。然后将未排序数组的第一个元素分配给它所属的位置。每次增加计数
Array: 31 27 45 23 22 3 1 13 1 42
Array after sort: 27 1 1 3 22 23 1 1 1 42
BUILD SUCCESSFUL (total time: 0 seconds)
【问题讨论】:
标签: java