数据结构
文章平均质量分 51
基础数据结构,适合考研党和大学本科学习
彩虹花
骚且自信
展开
-
快速排序
一、概念来自百度百科:快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。二、时间空间复杂度来自百度百科:快速排序的一次划分算法从两头交替搜索,直到low和hight重合,因此其时间复杂度是O(n);而整个快速排序算法的时间复杂度与划分的趟数有关。理想的情况是,每次划分所选择的中原创 2021-02-21 22:41:50 · 180 阅读 · 0 评论 -
归并排序
一、概念来自百度百科归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。二、时间复杂度归并排序比较占用内存,但却是一种效率高且稳定的算法。改进归并排序在归并时先判断前段序列的最大值与后段序列最小值的关系再确定是否进行复制比较。如果前段序列的最大值小于等于后段序列最小原创 2021-02-21 10:42:41 · 191 阅读 · 6 评论 -
选择排序
一、概念选择排序的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。二、时间、空间复杂度选择排序的交换操作介于 0 和 (n - 1)次之间。选择排序的比较操作为 n (n - 1) / 2 次之间。选择排序的赋值操作介于 0 和 3 (n - 1) 次之间。比较次数O(n^2),比较次数与关键字的初始状态无关,总原创 2021-02-20 20:17:42 · 144 阅读 · 0 评论 -
冒泡排序
一、概念来自百度百科:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。简而言之其基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。二、时间、空间复杂度当最好的情况,也就原创 2021-02-20 19:51:30 · 62 阅读 · 0 评论 -
插入排序
插入排序一、概念类似于玩扑克牌时一张一张抽取并整理牌型。它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增 1 的有序表。二、时间、空间复杂度插入排序平均时间复杂度是**O(n^2)**空间复杂度为常数阶 O(1),具体时间复杂度和数组的有序性也是有关联的。插入排序中,当待排序数组是有序时,是最优的情况,只需当前数跟前一个数比较一下就可以了,这时一共需要比较 N-1 次,时间复杂度为 O(N)。最坏的情况是待排序数组是逆序的,此时需要比较次数最多,最坏的情况是 O(n^2原创 2021-02-20 12:32:05 · 401 阅读 · 2 评论