![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构算法
文章平均质量分 64
学习笔记,若有不妥之处,可私信一起探讨一下。
Starry..
少年不惧岁月长,彼方尚有荣光在!
展开
-
选择排序详解及递归实现
文章目录一、概念及原理二、适用说明1.时间复杂度2.空间复杂度3.算法特点4.动画演示三、双循环实现代码演示1.未优化的代码实现2.优化后的代码实现四、递归实现代码演示1.未优化的代码实现2.优化后的代码实现一、概念及原理选择排序:每一趟从待排序的记录中选出关键字最小的记录,按顺序放在已排序的记录序列的最后,知道全部排完为止。二、适用说明1.时间复杂度简单的选择排序的时间复杂度是O(n^2)。2.空间复杂度只有在两个记录交换时需要一个辅助空间,所以空间复杂度为O(1)。3.算法特点就.原创 2021-11-21 08:00:00 · 2413 阅读 · 0 评论 -
快速排序详解
文章目录一、概念及原理二、使用说明1.时间复杂读2.空间复杂度3.算法特点4.动画演示三、代码演示一、概念及原理快速排序:是由冒泡排序改进二得的。在冒泡排序过程中,只对相邻的两个元素进行比较,因此每次交换两个相邻的元素时只能消除一个逆序。如果能通过两个(不相邻)记录的一次交换,消除多个逆序,则会大大加快排序的速度。快速排序方法中的一次交换可能消除多个逆序。二、使用说明1.时间复杂读在平均情况下,快速排序的时间复杂度为O(log2n)。2.空间复杂度快速排序是递归的,执行时需要一个栈来存放相应原创 2021-11-20 08:00:00 · 358 阅读 · 0 评论 -
冒泡排序详解及递归实现
文章目录一、概念及原理二、使用说明1.时间复杂度2.空间复杂度3.算法特点4.动画展示三、双循环实现代码演示四、递归实现代码演示一、概念及原理冒泡排序:通过两两比较相邻元素,如果发生逆序,则进行交换,从而使大的元素像气泡一样逐渐往上“”“漂浮”。二、使用说明1.时间复杂度最好情况下:只需要进行一次排序,在排序过程中进行 n-1 次元素间的比较,且不移动记录。最坏情况下:需要进行 n-1 次排序,总的元素比较次数和记录移动次数分别为n^2/2 ,3*n^2/2。在平均情况下,冒泡排序元素的比较原创 2021-11-19 08:00:00 · 6178 阅读 · 0 评论 -
希尔排序详解
文章目录一、概念及说明二、使用说明1.时间复杂度2.空间复杂度3.算法特点4.动画演示三、代码演示一、概念及说明希尔排序-----插入排序的一种,属于优化后的插入排序原理:把数组中的数据进行分组,在组内进行排序,没有排列好继续分组(注意改分组需要调整每个组元素的个数),每次排序都是在组内进行排序例如数组中有15个元素为例,第一次分组为 15/2 =7-1=6 第二次分组为7/2=3-1=2 算出来的数为元素间隔数。相比于插入排序的优点是:1.减少查找次数 2.减少元素移动的次数二、.原创 2021-11-17 13:49:50 · 850 阅读 · 0 评论 -
插入排序详解及递归实现
文章目录一、概念及说明二、适用说明1.时间复杂度2.空间复杂度3.算法特点4.算法动画展示三、双循环实现代码演示四、递归实现代码演示一、概念及说明原理:通过构建有序数列,把未排列数据,通过扫描,插入到有序数列的合适位置插入排序的基本思想:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有的待排序记录全部插入为止。二、适用说明1.时间复杂度当待排序数组是有序时,是最优的情况,只需当前数跟前一个数比较一下就可以了,这时一共需要比较 N-1 次,时间复杂度为.原创 2021-11-17 13:02:06 · 4607 阅读 · 4 评论