Массивті өсу ретімен қалай сұрыптауға болады

Мазмұны:

Массивті өсу ретімен қалай сұрыптауға болады
Массивті өсу ретімен қалай сұрыптауға болады

Бейне: Массивті өсу ретімен қалай сұрыптауға болады

Бейне: Массивті өсу ретімен қалай сұрыптауға болады
Бейне: Колон тәрізді алма ағашы. 5-бөлім. Жазда бағаналы алма ағашын кесу. Қашу және қысу қашу. 2024, Мамыр
Anonim

Массивтегі мәліметтерді өңдеу тізбектелген санау, салыстыру және ықтимал мәндерді іздеу арқылы жүзеге асырылады. Сонымен қатар массивтің үлкен өлшемі ресурстардың құнын едәуір арттырады. Алгоритмнің массивтің барлық элементтерінен бірнеше рет өту уақыты, егер олар алдын-ала тапсырыс берілсе, айтарлықтай қысқаруы мүмкін. Массивтер әдетте ең төменгі саннан немесе таңбадан бастап өсу ретімен сұрыпталады. Сұрыптау алгоритмдері белгілі бір тапсырманың шарттарына байланысты таңдалуы керек.

Массивті өсу ретімен қалай сұрыптауға болады
Массивті өсу ретімен қалай сұрыптауға болады

Нұсқаулық

1-қадам

Массивті сұрыптаудың бірнеше әдісі бар. Алгоритмдеу үшін ең қарапайымы - «көпіршікті» сұрыптау, бірақ ол ең баяу болып табылады. Бұл әдістің мәні мәліметтер массивін дәйекті түрде айналып өту және элементтердің әр жұбын салыстыру болып табылады. Егер бала алдыңғыдан кішірек болса, орындар ауыстырылады. Содан кейін алгоритм қайта басталады. Сұрыптауға арналған C кодының үлгісі:

int mаss [10];

int el_min = 10;

үшін (int i = 0; ii; j--)

егер (lеss (mаss [j], mаss [j-1]))

swаp (mаss [j], mаss [j-1]);

}

2-қадам

Массивті өсу ретімен сұрыптаудың оңтайлы алгоритмдерінің бірі кірістіру әдісі болып саналады. Алгоритмнің мәні - элементтер тобы арасында (өсу ретімен) берілген реттілікті қалыптастыру. Циклдегі арнайы өңдеуші массивті тапсырыс беру үшін тексереді. Өсу ретімен сұрыптау үшін келесі шарт көрсетілген. Егер келесі элемент алдыңғы элементтен кіші болса, онда ол орнынан алынып, оның мәніне сәйкес келетінге қойылады. С-да өсетін сұрыптау бағдарламасының мысалы:

int Кол = 40;

int mаss [Kol], k;

үшін (int i = 1, j = 0; i <Kol; i ++)

{

k = mаss ; // массив элементін сақтауға арналған көмекші айнымалы

j = i - 1;

ал (k <mаss [j])

{

mаss [j + 1] = mаss [j];

j--;

егер (j <0) үзіліс;

mаss [j + 1] = k;

}

}

3-қадам

Сұрыптаудың тағы бір жиі қолданылатын әдісі - массивтен минималды немесе максималды элементті табу арқылы тапсырыс беру алгоритмі. Өсу ретімен сұрыптау кезінде массивтен бірінші өткен сәтте оның мәні ең кіші элемент табылып, массивтің басында орналастырылады. Оның орнына бұрын бірінші позицияны иеленген элемент орнатылған. Массивті әрі қарай қарау кезінде толтырылған орын алынып тасталады. Келесі ең кіші элемент ізделеді, екінші орынға қойылады және т.б., бүкіл массив сұрыпталғанша. Тізімнің минималды элементін табу әдісі бойынша кодты сұрыптаңыз:

int mаss [30], bb;

int Kоl = 30, min, pоs;

үшін (int i = 0; i <Kol -1; i ++)

{

min = mаss ;

pоs = i;

үшін (int j = 0; j <Kol; j ++)

{

егер (mаss [j] <min)

{

min = mаss [j];

pоs = j;

}

bb = mаss ;

mаss = mаss [pоs];

mаss [pоs] = bb;

}

}

Ұсынылған: