private void Form2_Load(object sender, EventArgs e) { //Girilen dizi boyutuna göre textboxlar ve oklar oluşturulur. for (int i = 0; i < Size; i++) { Label label = new Label(); label.Location = new System.Drawing.Point(70 + (50 * i), 170); label.Size = new System.Drawing.Size(50, 50); label.Text = " ↑"; this.Controls.Add(label); labeller.Add(label); TextBox yenitext = new TextBox(); yenitext.TextAlign = HorizontalAlignment.Center; yenitext.Location = new System.Drawing.Point(70 + (50 * i), 150); yenitext.Size = new System.Drawing.Size(50, 50); this.Controls.Add(yenitext); textboxlar.Add(yenitext); if (i == 0 || i == Size - 1) { yenitext.Enabled = false; yenitext.Text = "*"; } } SelectionSort.labelAyar(labeller, 56); }
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 = "!"; } }