十大排序算法
爷傲|奈我何
三更灯火五更鸡,这正是男儿读书时。
展开
-
十大排序——插入排序
插入排序:遍历数组,在遍历的过程中将第i个元素与第i+1个元素进行比较,若array[i]>array[i+i]则第i个元素与第i-2个元素比较,直到找到小于第i个元素的元素,将第i个元素插入到其后方。以此类推。 最小时间复杂度 最大时间复杂度 平均时间复杂度 空间复杂度 稳定性 选择排序 O(n) O() O() O(1) 不稳定 动图解析: C语言实现: #include<cstdio> #include&.原创 2021-10-27 16:28:11 · 205 阅读 · 0 评论 -
十大排序——选择排序
选择排序:遍历数组,找到数组中的最小元素将其移动到该数组的首位,然后再次遍历数组,找到第二小的元素移动到数组的第二位,以此类推直到排序完成。 最小时间复杂度 最大时间复杂度 平均时间复杂度 空间复杂度 稳定性 选择排序 O() O() O() O() 不稳定 关于稳定性:如果当前元素比一个元素小,而该小的元素又出现在一个和当前元素相等的元素后面,那么交换后稳定性就被破坏了。所以选择排序不稳定。 #include<cstdio.原创 2021-10-14 22:12:28 · 89 阅读 · 0 评论 -
十大排序——冒泡排序
冒泡排序:数组中的元素与该元素的下一个元素做对比,如果该元素大那么两个元素调换位置。由于在最复杂的情况下,即数组全部逆序排列时所需的次数为length-1次,所以冒泡排序的时间复杂度为: 最小时间复杂度 最大时间复杂度 平均时间复杂度 空间复杂度 冒泡排序 O(n) O() O() O(1) #include<cstdio> #include<cstdlib> int main() { int a[10] = {1.原创 2021-10-14 16:13:19 · 86 阅读 · 0 评论