Salam. Bu gün növbəti alqoritmi, yəni, "Insertion Sort"-u istifadə edərək massivimizi sıralamaya çalışacağıq. Alqoritmi ilk öncə sözlə təsvir edərək başlayaq. Aşağıdakı şəkildə də görüldüyü kimi massivin elementləri iki hissəyə bölünüb. Birinci hissədə (boz rəngli) sıralanmış digər hissədə isə (ağ rəngli) massivin digər elementləri (ilkin formaya uyğun) yerləşib. Hər dövürdə sağ tərəfdəki elementlərdən biri götürülərək sol tərəfədə uyğun mövqeyə əlavə edilir. Sol tərəfdəki elementlər artıq sıralı olduğundan əlavə etmə zamanı bütün elementləri müqayisə etməyə ehtiyac yoxdur. Daha aydın olması üçün aşağıdakı nümunəyə baxaq.
Qeyd: İsifadə olunan alqoritm https://www.csharpstar.com/csharp-algorithms/ saytından götürülüb.
Qeyd: İsifadə olunan alqoritm https://www.csharpstar.com/csharp-algorithms/ saytından götürülüb.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
//5 elementdən ibarət "array" massiv elan edirik | |
int[] array = new int[5] { 83, 12, 3, 34, 60 }; | |
int i; | |
//Massivi sıralamazdan öncə ekrana yazdıraq. | |
Console.WriteLine("The Array is :"); | |
for (i = 0; i < 5; i++) | |
{ | |
Console.WriteLine(array[i]); | |
} | |
//Massiv sıralanır | |
Insertsort(array, 5); | |
//Massiv sıralamadan sonra ekrana yazdırılır. | |
Console.WriteLine("The Sorted Array is :"); | |
for (i = 0; i < 5; i++) | |
{ | |
Console.WriteLine(array[i]); | |
} | |
Console.ReadLine(); | |
} | |
static void Insertsort(int[] data, int n) | |
{ | |
//Dövürün sayını müəyyən edəcək dəyişənlər elan edilir | |
int i, j; | |
for (i = 1; i < n; i++) | |
{ | |
//İlk olaraq massivin 1-ci indeksli(yəni ikinci elementi) elementi götürülərək özündən əvvəlki | |
//elementdən kiçik olması yoxlanılır | |
int item = data[i]; | |
//Dövür zamanı yeni elementin daxil edilməsini yoxlamaq üçün bu dəyişəndən istifadə olunacaq | |
int ins = 0; | |
//Hər dəfə dövür ondan əvvəlki dövrün cari qiymətindən bir çıxılaraq başlayır və sıfırncı indeksli | |
//elementə qədər davam edir. Əgər yeni bir element daxil edilərsə dövrdən çıxılır | |
for (j = i - 1; j >= 0 && ins != 1;) | |
{ | |
//i indeksli elementin, sıralanmış elementlərdən kiçik olması yoxlanılır. | |
if (item < data[j]) | |
{ | |
//Kiçik olduğu halda cari elementdən (data[j]) önə əlavə edilir (və ya yerləri dəyişdirilir) | |
data[j + 1] = data[j]; | |
j--; | |
data[j + 1] = item; | |
} | |
//Əgər i indeksli element sıralanmış hissədəki ən böyük elementdən böyük olarsa dövrdən çıxılır. | |
else ins = 1; | |
} | |
} | |
} | |
} |
Etiketlər:
Algorithm
vr chess board: A simple, interactive tutorial for free youtube
YanıtlaSilFind out how to find a suitable chess youtube downloader board for you. In this simple tutorial, you can find a perfect chess board for you.