C#冒泡排序算法

编程入门 行业动态 更新时间:2024-10-28 04:25:53

C#冒泡排序<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法"/>

C#冒泡排序算法

冒泡排序实现原理

冒泡排序是一种简单的排序算法,其原理如下:

  1. 从待排序的数组的第一个元素开始,依次比较相邻的两个元素。

  2. 如果前面的元素大于后面的元素(升序排序),则交换这两个元素的位置,使较大的元素“冒泡”到右侧。

  3. 继续比较下一对相邻元素,重复步骤2,直到遍历到数组的倒数第二个元素。此时,最大的元素会被交换到数组的最后一个位置。

  4. 针对剩余尚未排序的元素,重复步骤1到步骤3。每次遍历过程中,最大的元素都会被放置到正确的位置上。

  5. 持续以上操作,直到所有元素都按照指定的顺序排列为止。

冒泡排序图解

冒泡排序实现的2种方式

双重循环方式实现冒泡排序

        /// <summary>/// 双重循环方式实现冒泡排序/// </summary>public static void BubbleSort(){int[] arr = { 1, 8, 9, 5, 6, 2, 3, 4, 7 };int arrLength = arr.Length;for (int i = 0; i < arrLength - 1; i++){for (int j = 0; j < arrLength - i - 1; j++){if (arr[j] > arr[j + 1]){//交换arr[j]和arr[j+1]的值int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}Console.WriteLine("排序后结果:" + string.Join(", ", arr));}

递归方式实现冒泡排序

        /// <summary>/// 递归方式实现冒泡排序/// </summary>/// <param name="arr">arr</param>/// <param name="arrLength">arrLength</param>public static void RecursiveBubbleSort(int[] arr, int arrLength){if (arrLength == 1)return;for (int i = 0; i < arrLength - 1; i++){if (arr[i] > arr[i + 1]){//交换arr[i]和arr[i+1]的值int temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;}}RecursiveBubbleSort(arr, arrLength - 1);}public static void RecursiveBubbleSortRun(){int[] arr = { 1, 8, 9, 5, 6, 2, 3, 4, 7 };int arrLength = arr.Length;RecursiveBubbleSort(arr, arrLength);Console.WriteLine("排序后结果:" + string.Join(", ", arr));}

总结

冒泡排序的名称来源于元素比较过程中,较大的元素会逐渐向右“冒泡”到正确的位置上。它的时间复杂度为O(n^2),在实际应用中适用于数据规模较小的情况。在实际应用中,我们需要根据具体情况选择合适的实现方式来平衡代码的可读性和排序效率。同时,如果对排序算法的效率要求较高,可以考虑使用其他更高效的排序算法,如快速排序或归并排序。

参考文章

更多推荐

C#冒泡排序算法

本文发布于:2023-12-07 15:15:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1671527.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!