随笔分类 - 算法基础
摘要:一,基数排序基本思想: 按最低位优先法先对低位关键字进行排序,直到对最高位关键字排序为止,经过若干次分配和收集来实现排序基数排序中用到了箱排序,每个箱子都是先进先出,因此采用队列是最合理的数据结构。如下图: 开始采用顺序表的存储结构,每次分派10个Length长的队...
阅读全文
摘要:基本思想:在堆排序的算法中先建一个大顶堆,既先选得一个关键字作为最大的记录并与序列中最后一个记录交换,然后对序列中前N-1记录进行选择,重新将它调整成一个大顶堆,如此反复直到排序结束。 #include const int Length = 10; //堆大小void...
阅读全文
摘要:快速排序基本思想:挖坑填数+分治法快速排序的分治partition过程有两种方法,一种是上面所述的两个指针索引一前一后逐步向后扫描的方法(算法导论上采用的是这种方法),还有一种方法是两个指针从首位向中间扫描的方法(大多数的人和一般的教材采用的是这第二种首尾向中间扫描法...
阅读全文
摘要:一,O(n)算法,解释见代码 二,分治算法跟二分查找的思想相似,我们可以分情况讨论这个问题是不是符合二分查找的条件。情况1.这个满足最大和的子数组全部在本数组的左半部或者右半部。例如:左半部A[i]……A[n/2-1]或者右半部A[n/2]……A[j]。这种情况下可以...
阅读全文
摘要:某线性表数据元素类型为整型,以双向循环链表结构存储线性表。试编程实现:⑴ 输入数据元素,以先进先出形式创建双向循环链表⑵ 销毁双向循环链表⑶ 线性表置空⑷ 求线性表长度⑸ 在第i个数据元素前插入新的元素⑹ 删除元素(按指定元素序号和元素值2种方式)⑺ 显示线性表中的...
阅读全文
摘要:线性表数据元素的类型为整型,以顺序表为存储结构。试编程实现:⑴ 线性表置空⑵ 求线性表长度⑶ 数据元素的插入操作⑷ 数据元素的删除操作⑸ 显示线性表中的全部元素#include #define LIST_INIT_SIZE 100/* */ #define LIST...
阅读全文


浙公网安备 33010602011771号