Saralanadigan qator quyidagicha:
Endi har bir o'tish uchun biz hozirgi elementni uning oldingi elementlari bilan taqqoslaymiz. Shunday qilib, birinchi o'tishda biz ikkinchi elementdan boshlaymiz.
Shunday qilib, N elementlari bo'lgan massivni to'liq tartiblash uchun biz N soni o'tishini talab qilamiz.
C ++ dan foydalanib, Insertion Sort texnikasini amalga oshiramiz.
#include
using namespace std;
int main ()
{
int myarray[5] = { 12,4,3,1,15};
cout<<"\nInput list is \n";
for(int i=0;i<5;i++)
{
cout <}
for(int k=1; k<5; k++)
{
int temp = myarray[k];
int j= k-1;
while(j>=0 && temp <= myarray[j])
{
myarray[j+1] = myarray[j];
j = j-1;
}
myarray[j+1] = temp;
}
cout<<"\nSorted list is \n";
for(int i=0;i<5;i++)
{
cout <}
}
|
Chiqish natijasi:
Kirish ro'yxati bu
12 4 3 1 15
Saralangan ro'yxat
1 3 4 12 15
Yuqoridagi chiqish kiritish tartibida ishlatilgan to'liq tartiblangan qatorni ko'rsatadi.
6.Quick sort
Quicksort - ma'lumotlarni saralash uchun ishlatilishi mumkin bo'lgan eng samarali algoritm. Ushbu usulda "bo'linish va g'alaba qozonish" strategiyasidan foydalaniladi, bunda muammo bir nechta kichik dasturlarga bo'linadi va ushbu kichik dasturlarni echib bo'lgandan so'ng ular to'liq tartiblangan ro'yxat uchun birlashtiriladi.
Quicksortda biz avval pivot elementi atrofida ro'yxatni ajratamiz, so'ngra boshqa elementlarni pivot elementiga muvofiq tegishli holatga joylashtiramiz.
Yuqoridagi rasmda ko'rsatilgandek, Quicksort texnikasida biz massivni pivot elementiga tenglashtiramiz, shunday qilib, aylantiruvchidan kichik bo'lgan barcha elementlar chap tomonda, pivotdan kattaroqlari o'ng tomonda joylashgan. Keyin biz ushbu ikkita massivni mustaqil ravishda yig'amiz va ularni tartiblashtiramiz va natijada tartiblangan qatorga ega bo'lish uchun ularni birlashtiramiz yoki engamiz.
Quicksortning kaliti - bu aylanma elementni tanlash. Bu massivning birinchi, oxirgi yoki o'rta elementi bo'lishi mumkin. Belgilangan elementni tanlab olishdan keyingi birinchi qadam - bu massivni kerakli darajada ajratishimiz uchun pivotni to'g'ri joyga o'rnatish.
Do'stlaringiz bilan baham: |