php网站开发实战的书,重庆市建设工程信息网项目经理解锁指南,网站开发指什么,长沙企业网站建设品牌冒泡排序实现原理
冒泡排序是一种简单的排序算法#xff0c;其原理如下#xff1a; 从待排序的数组的第一个元素开始#xff0c;依次比较相邻的两个元素。 如果前面的元素大于后面的元素#xff08;升序排序#xff09;#xff0c;则交换这两个元素的位置#xff0c;使…冒泡排序实现原理
冒泡排序是一种简单的排序算法其原理如下 从待排序的数组的第一个元素开始依次比较相邻的两个元素。 如果前面的元素大于后面的元素升序排序则交换这两个元素的位置使较大的元素“冒泡”到右侧。 继续比较下一对相邻元素重复步骤2直到遍历到数组的倒数第二个元素。此时最大的元素会被交换到数组的最后一个位置。 针对剩余尚未排序的元素重复步骤1到步骤3。每次遍历过程中最大的元素都会被放置到正确的位置上。 持续以上操作直到所有元素都按照指定的顺序排列为止。
冒泡排序图解 冒泡排序实现的2种方式
双重循环方式实现冒泡排序 /// summary/// 双重循环方式实现冒泡排序/// /summarypublic 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[j1]的值int temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}}Console.WriteLine(排序后结果 string.Join(, , arr));}递归方式实现冒泡排序 /// summary/// 递归方式实现冒泡排序/// /summary/// param namearrarr/param/// param namearrLengtharrLength/parampublic 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[i1]的值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)在实际应用中适用于数据规模较小的情况。在实际应用中我们需要根据具体情况选择合适的实现方式来平衡代码的可读性和排序效率。同时如果对排序算法的效率要求较高可以考虑使用其他更高效的排序算法如快速排序或归并排序。
参考文章
https://blog.csdn.net/qq_45019143/article/details/109961460