#include<stdio.h>
#include<stdlib.h>
#define N 100000 // 10000 3-5 сек; 100 000 1 мин 30 сек
int Mass[N];
void determination(void);
void shaker(void);
void printing(void);
int main()
{
determination();
//printing();
shaker();
printing();
return 0;
}
void determination(void)//функция присвоения значений массиву
{
for (int i = 0; i <= (N - 1); i++)
{
Mass
[i
] = rand() % (N
* 5); }
}
void shaker(void)//функция упорядочения массива
{
int tmp = 0, high = 0, low = (N - 1);
while (high < low)
{
for (int i = high; i < low; i++)//двигаемся сверху вниз
{
if (Mass[i] > Mass[i + 1]) //если текущее значение больше
{
tmp = Mass[i]; //следующего меняем их местами
Mass[i] = Mass[i + 1]; //(двигаем его вниз)
Mass[i + 1] = tmp; //
}
}
low--;//обратите внимание, что нижняя граница поднимается
//вверх (если сделать наоборот, ,,,,)
for (int j = low; j > high; j--)//двигаемся снизу вверх
{
if (Mass[j] < Mass[j - 1]) //если текущее значение меньше
{
tmp = Mass[j]; //следующего меняем их местами
Mass[j] = Mass[j - 1]; //(двигаем его вверх)
Mass[j - 1] = tmp; //
}
}
high++;
}
}
void printing(void)//функция вывода массива на экран
{
for (int i = 0; i <= (N - 1); i++)
{
printf("%d\t%d\n", i
+ 1, Mass
[i
]); }
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CiNkZWZpbmUgTiAxMDAwMDAgICAgICAgIC8vIDEwMDAwIDMtNSDRgdC10Lo7IDEwMCAwMDAgMSDQvNC40L0gMzAg0YHQtdC6CmludCBNYXNzW05dOwp2b2lkIGRldGVybWluYXRpb24odm9pZCk7CnZvaWQgc2hha2VyKHZvaWQpOwp2b2lkIHByaW50aW5nKHZvaWQpOwoKaW50IG1haW4oKQp7CiAgICAgICAgCiAgICAgICAgZGV0ZXJtaW5hdGlvbigpOwogICAgICAgIC8vcHJpbnRpbmcoKTsKICAgICAgICBzaGFrZXIoKTsKICAgICAgICBwcmludGluZygpOwogICAgICAgIAogICAgICAgIHJldHVybiAwOyAgICAgICAgIAogICAgICAgIH0KICAgICAgICAKdm9pZCBkZXRlcm1pbmF0aW9uKHZvaWQpLy/RhNGD0L3QutGG0LjRjyDQv9GA0LjRgdCy0L7QtdC90LjRjyDQt9C90LDRh9C10L3QuNC5INC80LDRgdGB0LjQstGDCnsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAoTiAtIDEpOyBpKyspCiAgICAgICAgewogICAgICAgICAgICAgICAgTWFzc1tpXSA9IHJhbmQoKSAlIChOICogNSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgCiAgICAgICAgfQoKdm9pZCBzaGFrZXIodm9pZCkvL9GE0YPQvdC60YbQuNGPINGD0L/QvtGA0Y/QtNC+0YfQtdC90LjRjyDQvNCw0YHRgdC40LLQsAp7CiAgICAgICAgaW50IHRtcCA9IDAsIGhpZ2ggPSAwLCBsb3cgPSAoTiAtIDEpOwogICAgICAgIHdoaWxlIChoaWdoIDwgbG93KQogICAgICAgIHsKICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBoaWdoOyBpIDwgbG93OyBpKyspLy/QtNCy0LjQs9Cw0LXQvNGB0Y8g0YHQstC10YDRhdGDINCy0L3QuNC3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChNYXNzW2ldID4gTWFzc1tpICsgMV0pICAgICAgLy/QtdGB0LvQuCDRgtC10LrRg9GJ0LXQtSDQt9C90LDRh9C10L3QuNC1INCx0L7Qu9GM0YjQtSAKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IE1hc3NbaV07ICAgICAgICAgIC8v0YHQu9C10LTRg9GO0YnQtdCz0L4g0LzQtdC90Y/QtdC8INC40YUg0LzQtdGB0YLQsNC80LgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXNzW2ldID0gTWFzc1tpICsgMV07ICAvLyjQtNCy0LjQs9Cw0LXQvCDQtdCz0L4g0LLQvdC40LcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFzc1tpICsgMV0gPSB0bXA7ICAgICAgICAgICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbG93LS07Ly/QvtCx0YDQsNGC0LjRgtC1INCy0L3QuNC80LDQvdC40LUsINGH0YLQviDQvdC40LbQvdGP0Y8g0LPRgNCw0L3QuNGG0LAg0L/QvtC00L3QuNC80LDQtdGC0YHRjyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v0LLQstC10YDRhSAgICAo0LXRgdC70Lgg0YHQtNC10LvQsNGC0Ywg0L3QsNC+0LHQvtGA0L7RgiwgLCwsLCkKICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBsb3c7IGogPiBoaWdoOyBqLS0pLy/QtNCy0LjQs9Cw0LXQvNGB0Y8g0YHQvdC40LfRgyDQstCy0LXRgNGFCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChNYXNzW2pdIDwgTWFzc1tqIC0gMV0pICAgICAgLy/QtdGB0LvQuCDRgtC10LrRg9GJ0LXQtSDQt9C90LDRh9C10L3QuNC1INC80LXQvdGM0YjQtSAKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IE1hc3Nbal07ICAgICAgICAgIC8v0YHQu9C10LTRg9GO0YnQtdCz0L4g0LzQtdC90Y/QtdC8INC40YUg0LzQtdGB0YLQsNC80LgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXNzW2pdID0gTWFzc1tqIC0gMV07ICAvLyjQtNCy0LjQs9Cw0LXQvCDQtdCz0L4g0LLQstC10YDRhSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXNzW2ogLSAxXSA9IHRtcDsgICAgICAgICAgICAgICAgICAgICAgLy8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGlnaCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgIAogICAgICAgIH0KICAgICAgICAKdm9pZCBwcmludGluZyh2b2lkKS8v0YTRg9C90LrRhtC40Y8g0LLRi9Cy0L7QtNCwINC80LDRgdGB0LjQstCwINC90LAg0Y3QutGA0LDQvQp7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gKE4gLSAxKTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgICAgIHByaW50ZigiJWRcdCVkXG4iLCBpICsgMSwgTWFzc1tpXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQ==