对c++代码感到困惑需要解释

问题描述 投票:0回答:1
#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
的用途吗?我有点笨所以现在不太明白。

试图理解它,但变得更加困惑。

c++ arrays sorting
1个回答
0
投票

size - i  -1
是因为这是冒泡排序的实现,不需要检查最后一个元素,因为它在之前的循环中“冒泡”到了表面,因此处理它只是一个多余且无用的操作,因此j 周期会忽略最后的 i-1 成员,因为他们总是已经在正确的位置。

© www.soinside.com 2019 - 2024. All rights reserved.