Cara menggunakan C# untuk menulis algoritma isihan pantas
Algoritma isihan pantas ialah algoritma isihan yang cekap Ideanya adalah untuk membahagikan tatasusunan kepada sub-masalah yang lebih kecil melalui idea membahagi dan menakluki. dan kemudian selesaikan sub-masalah ini secara rekursif Akhir sekali, gabungkan mereka untuk mendapatkan jawapan kepada keseluruhan masalah.
Di bawah ini kami akan memperkenalkan secara terperinci cara menulis algoritma isihan pantas menggunakan C# dan memberikan contoh kod yang berkaitan.
using System; class QuickSort { // 快速排序方法 public static void Sort(int[] arr, int low, int high) { if (low < high) { // 将数组划分成两部分 int partitions = Partition(arr, low, high); // 分别对划分后的两部分进行递归排序 Sort(arr, low, partitions - 1); Sort(arr, partitions + 1, high); } } // 划分数组,并返回划分位置 public static int Partition(int[] arr, int low, int high) { int pivot = arr[low]; // 基准元素 int left = low; int right = high; while (left < right) { // 从右往左找到第一个小于基准元素的元素 while (left < right && arr[right] >= pivot) right--; // 交换元素位置 if (left < right) Swap(arr, left, right); // 从左往右找到第一个大于基准元素的元素 while (left < right && arr[left] <= pivot) left++; // 交换元素位置 if (left < right) Swap(arr, left, right); } return left; } // 交换元素位置 public static void Swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } // 测试代码 static void Main(string[] args) { int[] arr = { 5, 3, 8, 4, 2, 9, 1, 6, 7 }; Console.WriteLine("原始数组:"); for (int i = 0; i < arr.Length; i++) Console.Write(arr[i] + " "); Console.WriteLine(); Sort(arr, 0, arr.Length - 1); Console.WriteLine("排序后的数组:"); for (int i = 0; i < arr.Length; i++) Console.Write(arr[i] + " "); Console.WriteLine(); } }
Hasil larian adalah seperti berikut:
原始数组: 5 3 8 4 2 9 1 6 7 排序后的数组: 1 2 3 4 5 6 7 8 9
Seperti yang anda lihat daripada contoh di atas, menggunakan C# untuk menulis algoritma isihan pantas ialah kaedah yang agak mudah dan cekap yang boleh membantu kami menyusun tatasusunan dengan cepat. Anda boleh mengubah suai dan mengembangkan lagi kod di atas mengikut keperluan anda sendiri untuk menyesuaikan diri dengan keperluan pengisihan yang berbeza.
Ringkasan
Artikel ini memperkenalkan cara menggunakan C# untuk menulis algoritma isihan pantas dan memberikan contoh kod yang sepadan. Isih cepat ialah algoritma pengisihan yang cekap dengan prestasi yang baik, mudah difahami dan dilaksanakan, serta boleh digunakan secara meluas dalam pembangunan sebenar. Saya harap artikel ini akan membantu semua orang apabila belajar dan menggunakan bahasa pengaturcaraan C#.
Atas ialah kandungan terperinci Bagaimana untuk menulis algoritma isihan pantas menggunakan C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!