Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Поясните плиз как работает программа.


Автор: max29 17.4.2016, 11:02
Вот программа.
Код

#include <iomanip>
#include <iostream>
void insertionsort(int A[],int n);
using namespace std;
void main()
{
    const int n=10;
    int A[n]; int j;
    cout<<"Vvedite 10 elementov massiva: \n";
    for(j=0; j<n; j++) cin>>A[j];
    insertionsort(A,n);
    for(j=0; j<n; j++)cout<<A[j]<<"  ";

    system("pause");
}
    void insertionsort(int A[], int n)
    {
        for (int j=1; j<n; j++)
        {
            int key=A[j];
            int i=j-1;
            while ((i>=0)&&(A[i]>key))
            {
                A[i+1]=A[i];
                i=i-1;
            }
            A[i+1]=key;
        }
    }


    



А вот та часть кода которая меня и интересует.

Код

void insertionsort(int A[], int n)
    {
        for (int j=1; j<n; j++)
        {
            int key=A[j];
            int i=j-1;
            while ((i>=0)&&(A[i]>key))
            {
                A[i+1]=A[i];
                i=i-1;
            }
            A[i+1]=key;
        }


Поясните мне что делает эта часть кода. 
Желательно написать комментарий напротив части кода.

Автор: nworm 17.4.2016, 19:17
Код

void insertionsort(int A[], int n) // заголовок функции
    {
        for (int j=1; j<n; j++) // цикл по массиву A
        {
            int key=A[j]; // будет рассматриваться в качестве ключа элемент A[j]
            int i=j-1; 
            while ((i>=0)&&(A[i]>key)) // ещё цикл сортировки всего что до A[j]
            {
                A[i+1]=A[i]; //  сортировка 
                i=i-1;
            }
            A[i+1]=key; // последняя часть сортировки
        }

Можно ещё про http://proginfo.ru/while/ почитать, если нужно.

Автор: max29 17.4.2016, 22:43
Спс

Автор: xvr 18.4.2016, 13:32
https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0%D0%BC%D0%B8

Автор: ragefit4 19.4.2016, 22:17
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)