![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Iam-xyZ
这个作者很懒,什么都没留下…
展开
-
数据结构 - 冒泡排序
冒泡排序冒泡排序的主要原理是两两比较,将较大者放在靠后的位置,用此种方法,将最大的值一点一点推到数列的后端。因此,对于一个长为n的数组,经过n-1遍冒泡,一定能将数组排序。时间复杂度:设T(n)为对长度为n的待排序列进行排序的时间。则比较次数为:n-1 + n-2 + ... + 1 = (n-1) * n / 2 = O(n^2) 而且,无论数组排序状况如何,都要进行这么多次的比较交换次数:最...原创 2018-04-01 06:57:45 · 290 阅读 · 0 评论 -
数据结构 - 插入排序
插入排序插入排序的原理是:当数组中前 n-1 个元素排序完成之后,将第n个元素往前推,直到此元素在前n个元素中被正确排列。因此插入排序每次都排好前n-1个元素,再将第n个元素放到合适的位置,将此位置后面的元素往后推。时间复杂度:插入排序同样需要进行n轮比较,每一轮会将完成排序的数组长度+1. 最优情况下,数组已经排序完成,则只需要比较n-1次。不需要排序 ...原创 2018-04-01 08:12:08 · 292 阅读 · 0 评论 -
数据结构 - 折半插入排序
折半插入排序折半插入的原理与普通插入排序完全相同,即在完全排列的子列中寻找插入元素的位置,并将此位置之后直到待排元素前的元素后移一位。区别是:折半插入利用折半查找来提高查找效率。即从中点开始,利用划分的思路进行查找。时间复杂度:每轮比较的次数k,有最少为1次,至多 k^2 = n 即 k = log2(n), 所以 时间复杂度为 O(n*log2(n))。移动的次数最少为0,最多为n。所以移动的时...原创 2018-04-01 09:53:25 · 544 阅读 · 0 评论 -
数据结构 - 快速排序
快速排序算法快速排序是一种基于划分和迭代的排序算法。主要原理:在每一次迭代时,都把向量分城左,中,右(left, mid, right)三部分,其中左边部分全部都小于中间值,而右边部分全部大于等于中间值。这样,将整个向量分解成一个类似二叉树的结构,从而达到排序的目的。而这种方法减小计算量的关键技术是,在选定mid指针所指的值之后,要用最快的方法将小于mid值和大于mid值的数分开。基本思路:在当前...原创 2018-03-26 22:40:59 · 251 阅读 · 0 评论