Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

โปรแกรม Selection Sort ใน C#


Selection Sort คืออัลกอริธึมการเรียงลำดับที่ค้นหาค่าต่ำสุดในอาร์เรย์สำหรับการวนซ้ำแต่ละครั้งของลูป จากนั้นค่าต่ำสุดนี้จะถูกสลับกับองค์ประกอบอาร์เรย์ปัจจุบัน มีการปฏิบัติตามขั้นตอนนี้จนกว่าจะจัดเรียงอาร์เรย์

โปรแกรมที่แสดงการเรียงลำดับการเลือกใน C# มีดังต่อไปนี้

ตัวอย่าง

using System;
public class Example {
   static void Main(string[] args) {
      int[] arr = new int[10] { 56, 1, 99, 67, 89, 23, 44, 12, 78, 34 };
      int n = 10;
      Console.WriteLine("Selection sort");
      Console.Write("Initial array is: ");
      for (int i = 0; i < n; i++) {
         Console.Write(arr[i] + " ");
      }
      int temp, smallest;
      for (int i = 0; i < n - 1; i++) {
         smallest = i;
         for (int j = i + 1; j < n; j++) {
            if (arr[j] < arr[smallest]) {
               smallest = j;
            }
         }
         temp = arr[smallest];
         arr[smallest] = arr[i];
         arr[i] = temp;
      }
      Console.WriteLine();
      Console.Write("Sorted array is: ");
      for (int i = 0; i < n; i++) {
         Console.Write(arr[i] + " ");
      }
   }
}

ผลลัพธ์

ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้

Selection sort
Initial array is: 56 1 99 67 89 23 44 12 78 34
Sorted array is: 1 12 23 34 44 56 67 78 89 99

ตอนนี้ เรามาทำความเข้าใจโปรแกรมข้างต้นกัน

ขั้นแรก อาร์เรย์จะเริ่มต้นและพิมพ์ค่าโดยใช้ for loop ซึ่งสามารถเห็นได้ในข้อมูลโค้ดต่อไปนี้

int[] arr = new int[10] { 56, 1, 99, 67, 89, 23, 44, 12, 78, 34 };
int n = 10;
Console.WriteLine("Selection sort");
Console.Write("Initial array is: ");
for (int i = 0; i < n; i++) {
   Console.Write(arr[i] + " ");
}

nested for loop ใช้สำหรับกระบวนการเรียงลำดับตามจริง ในแต่ละรอบของ outer for loop จะพบองค์ประกอบที่เล็กที่สุดในอาร์เรย์และแทนที่ด้วยองค์ประกอบปัจจุบัน กระบวนการนี้จะดำเนินต่อไปจนกว่าจะจัดเรียงอาร์เรย์ ซึ่งสามารถเห็นได้ในข้อมูลโค้ดต่อไปนี้

for (int i = 0; i < n - 1; i++) {
   smallest = i;
   for (int j = i + 1; j < n; j++) {
      if (arr[j] < arr[smallest]) {
         smallest = j;
      }
   }
   temp = arr[smallest];
   arr[smallest] = arr[i];
   arr[i] = temp;
}

ในที่สุดอาร์เรย์ที่เรียงลำดับจะปรากฏขึ้น ซึ่งสามารถเห็นได้ในข้อมูลโค้ดต่อไปนี้

Console.Write("Sorted array is: ");
for (int i = 0; i < n; i++) {
   Console.Write(arr[i] + " ");
}