我遇到了这些用于排序的示例,我对这里的后缀和前缀感到困惑 - 为什么它最后使用 - 但++ currIndex在这里?在第二个例子中它只使用++ pass和++ index?这些在排序中是否重要?非常感谢!
for (int last = n-1; last >= 1; last--) {
int largest = indexOfLargest(theArray, last+1);
int temp = theArray[largest];
swap theArray[largest] = theArray[last];
theArray[last] = temp;
}
private static int indexOfLargest(int[] theArray, int size) {
int indexSoFar = 0;
for (int currIndex = 1; currIndex < size; ++currIndex) {
if (theArray[currIndex]>theArray[indexSoFar])
indexSoFar = currIndex;
}
return indexSoFar;
示例2:
for (int pass = 1; (pass < n) && !sorted; ++pass) {
sorted = true;
for (int index = 0; index < n-pass; ++index) {
int nextIndex = index + 1;
if (theArray[index]>theArray[nextIndex]) {
int temp = theArray[index];
theArray[index] = theArray[nextIndex];
theArray[nextIndex] = temp;
}
答案 0 :(得分:0)
简单来说,它不会影响排序。 这是你想要如何执行增量/减量
的合理决定例如
int i = 0;
while (something) { //any loop for/while
array[++i] = some data; //increment i first and then next do operation
}
is similar to
int i = 1;
while (something) {
array[i++] = some data; //do operation and then increment
}
但重要的区别是首先执行++i
,然后根据i执行您想要执行的操作。在另一种情况下,它首先在i上执行然后增量
答案 1 :(得分:0)
对于您的特定示例,++ variable_name和variable_name ++没有太大区别。 在第一个例子中, 它们是从初始索引开始的,这就是使用++ currIndex的原因。 在for循环中的相同示例中,它们从最后一个索引开始并到达它们最后使用的第一个索引 - (或者在此处使用 - )。
并且在for循环的第二个例子中,它们从第一个索引开始,这就是使用++ pass和++ index的原因。