Можем ли мы написать метки [j] = marks [i];внутри цикла while вместо маркеров [i + 1] = marks [i]; - PullRequest
0 голосов
/ 17 октября 2018

Вставка программы сортировки на C ++

#include"iostream"
using namespace std;
int main(){
int i,temp;
int marks[5]={12,11,13,5,6};
//this loop go through all element
//(staring from 2 to 5,
//assuming that first element is already sorted)

for(int j=1;j<5;j++){
    i=j-1;
    temp=marks[j];

    while(i>=0 && marks[i]>temp){
        marks[i+1]=marks[i];
        i--;
    }
    marks[i+1]=temp;
}

//prints all the elements..
for(int z=0;z<5;z++){
    cout<<marks[z]<<" ";
}
return 0;

}

можем ли мы писать метки [j] = marks [i];внутри цикла while вместо меток [i + 1] = метки [i];

Если нет, то почему?

1 Ответ

0 голосов
/ 17 октября 2018

Таким образом, ответ «нет» - это не то же самое

Используя в качестве примера j = 2, цикл while начинается с i = 1

1-я итерация отмечает [i +1] = marks [i], i + 1 - то же самое, что и j, но затем i--, поэтому я заканчиваю как 0 к концу цикла while.

для 2-й итерации в whileцикл, метки [i + 1] = метки [i], i + 1 НЕ совпадает с j.

...