package
0.0.0-20250103121507-ee63f3edf62b
Repository: https://github.com/zhaoshupeng/learn.git
Documentation: pkg.go.dev
# Functions
---------------------------------冒泡--------------------------- 冒泡排序: 从小到大排序 原地排序、稳定的排序 时间复杂度:O(N^2) 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。.
该冒泡的方式是每次获取最小的.
BucketSort : arr 待排序数组,bucketSize表示每个桶的取值区间跨度.
No description provided by the author
No description provided by the author
---------------------------------插入--------------------------- 插入排序: 原地排序、稳定的排序 从尾到头比较已排序的数据 时间复杂度:O(N^2) 插入排序算法的核心思想 将数据分为:已排序区间、未排序区间。 最初,已排序区间为第一个元素,以此获取未排序区间中的数与已排序区间进行比较,找到正确的位置进行插入,并保证已排序区间的数据一直有序。直到未排序区间中元素为空 对于不同的查找插入点方法(从头到尾、从尾到头),元素的比较次数是有区别的。但对于一个给定的初始序列,移动操作的次数总是固定的,就等于逆序度.
No description provided by the author
---------------------------------归并排序---------------------------.
---------------------------------快排排序---------------------------.
No description provided by the author
---------------------------------选择排序--------------------------- 选择排序: 原地排序,不稳定的排序 时间复杂度:O(N^2) 选择排序算法的实现思路有点类似插入排序,也分已排序区间和未排序区间。但是选择排序每次会从未排序区间中找到最小的元素,将其放到已排序区间的末尾。.
希尔排序 希尔排序特别适合近乎有序的序列排序使用 先将整个待排记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,在对全体进行一次直接插入排序。 http://www.haodaquan.com/143 定义说的严谨,可是吧,一时半会很难看懂。我们知道插入排序是每次都是取基准元素左侧的元素比较大小,也就是每次比较的步长为1,如果是近乎有序的数组,插入排序很容易退化成O(n^2),而希尔排序每次选择的步长是不一样的(当然最后的步长肯定为1,也就是最后用一次插入排序),这是打破插入排序O(n^2)时间复杂度的关键步骤。.