public void Sort(int[] items, List <TextBox> textbox, List <Label> label) { int n = items.Length; int minIndis = 0; int bosIndis = 0; bool bittimi = false; for (int i = 0; i < n; i++) { SelectionSort.labelAyar(label, i); //minimumum i olarak ayarla minIndis = i; //i'den sonraki tüm elemanları tara for (int j = i + 1; j < n + 1; j++) { SelectionSort.labelAyar(label, j); //daha küçük eleman bulursan indisini sakla if (n != j && items[j] < items[minIndis]) { minIndis = j; } System.Threading.Thread.Sleep(1000); Application.DoEvents(); } //en küçük indis değiştiyse, yani i'den sonraki elemanlardan birisi i'den küçükse //takas işlemi gerçekleştir if (minIndis != i) { int temp = items[i]; items[i] = items[minIndis]; SelectionSort.labelAyar(label, i); textbox[i].Text = items[minIndis].ToString(); textbox[i + 1].Text = "*"; SelectionSort.labelAyar(label, i); bosIndis = i + 1; items[minIndis] = temp; textbox[minIndis + 1].Text = temp.ToString(); System.Threading.Thread.Sleep(1000); Application.DoEvents(); } //minindis=i ise boşlukları sağa kaydırır else { System.Threading.Thread.Sleep(1000); Application.DoEvents(); SelectionSort.labelAyar(label, i + 1); System.Threading.Thread.Sleep(1000); Application.DoEvents(); SelectionSort.labelAyar(label, i); textbox[i].Text = textbox[i + 1].Text; textbox[i + 1].Text = "*"; bosIndis = i + 1; bittimi = true; } } //sıralama işlemibittikten sonra boşluklar yan yana gelene kadar boşlukları kaydırır if (bittimi == true) { for (int j = bosIndis; j <= items.Length; j++) { System.Threading.Thread.Sleep(1000); Application.DoEvents(); SelectionSort.labelAyar(label, j); textbox[j].Text = textbox[j + 1].Text; textbox[j + 1].Text = "*"; } //işlemin bittiğini gösterir textbox[n].Text = "!"; } }