算法复习
2020-01-11 15:44 qgbo 阅读(115) 评论(0) 编辑 收藏 举报1.冒泡排序:一个一个冒泡。
比较次数 N -1 + N-2 + N-3 + ...+ N-(N-1) 共N-1 项, =(N-1) * N /2
2.快速排序。先是找出某一个数的最终位置()。这样可以做到稳定。这一步 N-1. 结果序列分为2 部分。每部分再这样操作每部分的操作为N/2 (假设正好评分),结果需要N/2 *2 次比较,变为4 份。下次的操作是 N/4 *4.
一共分log2 N 次。 这样复杂度是 N* logN
3.归并排序。先分组,分为 N/2 组,排好序需要 N/2 次。归并一次,需要N/4 * 2 (n/4 是完成后的组数,2是比较的次数,这结果是4个数,4个数的有序了) 次。 下一次是 N/8 *4 最后一次是 N/N * N/2. 一共是 logN 项。复杂度是 1/2 *N*logN
4.插入排序。前两个数先排序,比较次数为1,第三个数插进去,比较次数是2,下一个比较次数是logN. 最后也是LogN .只是插入的时候会造成整体的移动,这样不大好
气功波(18037675651)