以下文章概述了 C# 中的冒泡排序。冒泡排序是一種被認為是最簡單的演算法,它將元素或數字按特定順序放置,並且這些元素最終被放置到數組中已排序的正確位置。
冒泡排序工作的基本概念是考慮陣列。該數組從第一個索引到最後一個索引迭代。遍歷數組時,會將其與相鄰元素進行比較,如果它們以錯誤的順序出現,則進行交換。這意味著如果數字小於特定索引處的當前元素,那麼它們將被交換。重複這個過程直到陣列完全排序。它以通行證的形式進行。
讓我們考慮七個隨機數的陣列並對它們進行排序:
冒泡排序以遍的形式運作。這些遍一次取得兩個相鄰的數字,然後比較這兩個數字。如果存在的數字為 N。那麼對資料集進行排序所需的遍數為 N – 1。每次遍都會考慮這兩個數字對資料進行排序,並重複該序列,直到所有數字都未按預期方式排序。
第 1 關:
90 76 45 93 68 13 98
在第一遍中,比較前兩個數字。這裡它將比較 90 和 76。90 大於 76,因此它將被交換。
76 90 45 93 68 13 98
現在將 90 與 45 進行比較。 (0 也大於 45。因此這將與 45 交換。
76 45 90 93 68 13 98
現在,數字 90 和 93 已經排好序了。它們不會被交換並保持原樣。因此,此過程將根據演算法停止。
第 2 關:
76 45 90 93 68 13 98
此遍將再次從陣列中的第一個數字開始。這意味著現在將從 76 開始排序。 76 將與 45 進行比較。小於 76 的 45 將與 76 交換。
45 76 90 93 68 13 98
現在將檢查76和90。它們的順序已經正確,因此數組中不會發生任何變化。
這樣就會遍歷到陣列的結尾。
以下是範例:
實作冒泡排序的C#程式。
代碼:
using System; class Bubble { static void bubbleSrt(int []arr) { int num = arr.Length; for (int i = 0; i < num - 1; i++) for (int j = 0; j < num - i - 1; j++) if (arr[j] > arr[j + 1]) { // swap tmp and arr[i] int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } /* Printing the array */ static void printIt(int []arr) { int n = arr.Length; for (int i = 0; i < n; ++i) Console.Write(arr[i] + " "); Console.WriteLine(); } // Main method public static void Main() { int []arr = {90, 76, 45, 93, 68, 13, 98}; bubbleSrt(arr); Console.WriteLine("Sorted array"); printIt(arr); } }
輸出:
上面的程式定義了一個使用冒泡排序對數字進行排序的方法。冒泡排序有兩個 for 循環,它們遍歷數組並將要交換的數字儲存在臨時變數 tmp 中。然後,在索引 j 的幫助下,將該 tmp 值與其應在的位置交換。另一種方法用於列印排序後的陣列。冒泡排序使用 n – 1 遍對陣列進行排序。
冒泡排序也可以實現降序排序。
實現降序冒泡排序的C#程式如下:
代碼:
using System; public class BubbleSrt { public static void Main(string[] args) { int[]arr=new int[10]{23,98,45,12,9,16,65,74,34,29};//Array created with 10 unsorted numbers bubblesort(arr,10); int a; for(a = 0; a < 10; a++) Console.Write(arr[a]+"\t");//Printing the array after sorting in descending order Console.ReadLine(); } //bubble sort static void bubblesort(int[] data, int n) { int a; int b; for(a = 0; a < n; a++) for (b = n-1; b > a; b--) if (data[b] > data[b-1])//Condition to arrange array in descending order { int temp = data[b]; data[b]=data[b-1]; data[b-1]=temp; } } }
輸出:
在這裡,我們按降序對陣列進行排序。我們已經聲明了一個包含十個數字的陣列。之後,我們在主程式中呼叫冒泡排序函數,然後按降序列印它。這裡的冒泡排序函數採用兩個變數來遍歷數組。這裡使用兩個 for 迴圈並遍歷數組並比較數組中存在的值。條件是索引 b 和索引 b – 1 處存在的資料將被比較。如果 b 處的數字較大,則會進行交換。這是在內部 for 迴圈中完成的。一旦交換,就會持續到陣列末端。
冒泡排序是最簡單的排序方法。它遍歷整個數組並彈出數字,這有助於交換並使數組按正確的順序排列。它比較兩個相鄰的數字,並在它們不符合預期順序時彈出它們。使用 C# 進行排序非常簡單,可以透過使用陣列中存在的基本變數來完成。
以上是C# 中的冒泡排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!