#include <iostream>
void sort(int array[], int size);
int main()
{
int array[] = {10, 1, 9, 2, 8, 3, 7, 4, 6, 5};
int size = sizeof(array)/sizeof(array[0]);
sort(array, size);
for(int element : array){
std::cout << element << " ";
}
return 0;
}
void sort(int array[], int size){
int temp;
for(int i = 0; i < size - 1; i++){
for(int j = 0; j < size - i - 1; j++){
if(array[j] > array[j + 1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
我现在正在观看 C++ 教程,但我只是不明白这一部分:
for(int j = 0; j < size - i - 1; j++){
if(array[j] > array[j + 1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
有人可以解释一下
size - i - 1
和j+1
的用途吗?我有点笨所以现在不太明白。
试图理解它,但变得更加困惑。
size - i -1
是因为这是冒泡排序的实现,不需要检查最后一个元素,因为它在之前的循环中“冒泡”到了表面,因此处理它只是一个多余且无用的操作,因此j 周期会忽略最后的 i-1 成员,因为他们总是已经在正确的位置。