数据结构
Dr_Cassie
这个作者很懒,什么都没留下…
展开
-
实现对顺序表的增、删、改、查等操作
顺序表在计算机内存中以数组的形式保存的线性表,线性表分为顺序存储和链式存储。 顺序存储:逻辑上是连续的,在内存上也是连续的。 链式存储:逻辑上连续,内存上不一定连续。 顺序表又分为定长顺序表(不可扩容的),和不定长顺序表(可扩容,用realloc动态开辟数组)。 以下为定长顺序表的基本操作: (1)定义顺序表 # define ELEM_SIZE 5 typedef int ELEM...原创 2019-03-01 17:26:00 · 1003 阅读 · 1 评论 -
快速排序
快速排序是对冒泡排序的一种改进,基本思想是:找一个数作为基准,经过一趟排序,将整个序列分成两部分,将比基准数小的数放在它左边,比它大的数放在它右边。如下例: 对这个数组arr进行快速排序,首先我将选取0号下标的数6位基准数,放在临时变量tmp中存储,然后从right下标的数开始比较,如果arr[right]的值大于tmp的值,就一直做right--操作,直到遇到小于tmp的数,然后将此时ar...原创 2019-07-29 13:22:50 · 375 阅读 · 3 评论 -
【数据结构】——希尔排序
一、算法思想 希尔排序采用跳跃式分组(逻辑上分组)的策略,通过某个增量将数组元素划分为若干组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 平均时间复杂度:O(nlogn) 空间复杂度:O(1) 稳定性:不稳定 下面举例图解: 将图中的15个数字划分为5组,每组3个数字,然后进行排序。组内排序时是将每组...原创 2019-08-25 12:49:54 · 528 阅读 · 0 评论