以下文章提供了 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 已经排好序了。它们不会被交换并保持原样。因此,此过程将根据算法停止。
第二关:
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中文网其他相关文章!