![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构及算法
以C/C++为语言,描述一些常见的数据结构和算法
程序员写代码
个人博客主页:http://wang_da_shen.gitee.io/myblogs/
展开
-
排序算法——堆排序
堆排序 基本思想:在排序过程中,将数据看成一棵完全二叉树,利用完全二叉树中双亲结点和子结点的关系来选择关键值最小的记录。 堆的定义:n个元素序列h1, h2, …, hn,当hi>=h2i, h2i+1时,或当hi<=h2i, h2i+1时,称为堆;前者称为大根堆,后者称为小根堆。 以完全二叉树表示堆,以数组r[0…n-1]存储堆。 堆调整: 若结点i的左、右子树均为堆,将r[i]与...原创 2020-04-20 16:33:32 · 138 阅读 · 0 评论 -
排序算法——希尔排序
希尔排序 基本思想 1.将待排序记录(线性表)以小于n的跨越增量d1分为d1个组,距离为d1倍数的记录在同一组内; 2.在各组内分别进行直接插入(或交换)排序; 3.取第二个跨越增量d2<d1,重复(1)和(2); 4.直至dt=1为止 (dt<dt-1<…<d2<d1)。 当d=7时,其实是分成了{7,82},{19,16},{24,44},{13,63},{31...原创 2020-04-20 17:10:06 · 206 阅读 · 0 评论