01 冒泡排序
冒泡排序算法思想简单来说:在内层一次遍历中,arr[j] 与 arr[j-1] 进行比较,如arr[j-1] < arr[j], 不改变,反之互换值,保证arr[j]存储着 0~j-1中的最大值,随一次遍历当前数组最大值也下沉至末尾,经过n-1次外层循环,可使n-1个元素下沉,最后一个元素位置确定,排序完成。
举个例子方便理解,
例1:例如原数组为:0,34,66,12,100,98
进入第一次冒泡排序:
从下标1的元素(即34)排起:34与0比较,34大,数组仍为0,34,66,12,100,98
下标2的元素(即66):66与34比较,66大,数组仍为0,34,66,12,100,98
下标3的元素(即12):12与66比较,12小,互换位置,数组变换为0, 34, 12, 66, 100, 98
下标4的元素(即100):100与66比较,100大,数组仍为0, 34, 12, 66, 100, 98
下标5的元素(即98):98与100比较,98小,则互换位置,数组变换为0, 34, 12, 66, 98,100
查看规律,排序过程中,下标 j的值在交换后,是0 ~ j-1中最大的,利用的是不等号具有传递性;排序完成后,将100沉底,再进行新的循环时,只需排序0, 34, 12, 66, 98即可,最大值沉底。
具体实现代码如下:

本文详细介绍了冒泡排序的基本原理及其实现,并针对其效率问题提出了四种不同的优化方案,包括外层优化、内外层循环优化、双向冒泡及复合优化策略,通过实验对比了各方法的性能。
1026

被折叠的 条评论
为什么被折叠?



