随笔分类 - 算法
摘要:插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 平均时间复杂度为O(n^2),最好的情况是O(n),即数组已经是有序状态,最差O(n^2),辅助存储为O(1)。插入排序是稳定的排序算法。
阅读全文
摘要:直接选择排序的最好、最坏以及平均的时间复杂度均为O(n^2)。辅助空间为O(1),且为不稳定的排序算法。
阅读全文
摘要:https://www.cnblogs.com/MOBIN/p/5374217.html https://www.cnblogs.com/chengxiao/p/6194356.html 堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它是不稳定排序。 一般升序采用大顶堆,
阅读全文
摘要:快速排序是不稳定的算法,它不满足稳定算法的定义: 算法稳定性:假设在数列中存在a[i]=a[j],若在排序之前,a[i]在a[j]前面,并且排序之后,a[i]仍然在a[j]前面,则这个排序算法是稳定的。 快速排序算法的时间复杂度在最坏情况下是O(N^2),平均的时间复杂度是O(N*logN)。
阅读全文
摘要:思想:(升序)相邻两个比较大小,如果前者大于后者,则互换;第一趟下来,最大的数就到正确位置上了。依此类推…… 冒泡排序是交换排序的一种。 代码: 时间复杂度: 第一趟排序需要比较n-1次,第二趟需要比较n-2次,……,最后一趟只需比较1次,因此复杂度为:(n-1)+(n-2)+……+2+1 = 1/
阅读全文

浙公网安备 33010602011771号