随笔分类 -  排序算法和一点数据结构

摘要:大佬的堆排序详 堆排序 void HeapSort(vector<int>& arr) { //构建大顶堆,非叶子节点个数 for (int i = arr.size() / 2 - 1; i >= 0; i--) { //从第一个非叶子结点从下至上,从右至左调整结构 AdjustHeap(arr, 阅读全文
posted @ 2020-06-08 12:14 Fflyqaq 阅读(167) 评论(0) 推荐(0)
摘要:归并排序 大佬的归并排序详解 void mergeSort(vector<int>&arr, int start, int end) { if (arr.empty()||start >= end) return; int mid = (end + start) / 2; mergeSort(arr 阅读全文
posted @ 2020-06-08 12:09 Fflyqaq 阅读(116) 评论(0) 推荐(0)
摘要:[Toc] 本文为 分治算法 的代码实现。 作者水平比较差,有错误的地方请见谅。 1、算法 分治策略是:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得 阅读全文
posted @ 2019-11-09 13:04 Fflyqaq 阅读(704) 评论(0) 推荐(0)
摘要:[Toc] 本文为排序算法 选择排序的代码实现。 作者水平比较差,有错误的地方请见谅。 1、选择排序 简单选择排序:每次选择一个最小的值放到前面。 2、C 实现 SelectSort.cs C class Program { static void Main(string[] args) { int 阅读全文
posted @ 2019-11-08 22:20 Fflyqaq 阅读(159) 评论(0) 推荐(0)
摘要:[Toc] 本文为排序算法 希尔排序的代码实现。 作者水平比较差,有错误的地方请见谅。 1、希尔排序 希尔排序属于插入排序。 平均时间复杂度 :比直接插入低。具体分体非常复杂,有兴趣可自行研究。 平局空间复杂度 :O(1)。因为只在交换位置时使用一个辅助空间做暂存记录。 2、C 实现 ShellSo 阅读全文
posted @ 2019-11-08 21:46 Fflyqaq 阅读(194) 评论(0) 推荐(0)
摘要:[Toc] 本文为排序算法 直接插入排序的代码实现。 作者水平比较差,有错误的地方请见谅。 1、直接插入排序 冒泡排序属于插入排序。 排序最好情况:为正序,需进行 n 1 趟排序,进行 n 1 次比较和0次移动数据。 排序最坏情况:为逆序,需进行 n 1 趟排序,进行 n^2/2 次比较和 n^2/ 阅读全文
posted @ 2019-11-08 09:52 Fflyqaq 阅读(286) 评论(0) 推荐(0)
摘要:本文为排序算法-快速排序的代码实现。 作者水平比较差,有错误的地方请见谅。 1、快速排序 冒泡排序属于交换排序。 时间复杂度: 最好:O(n*logn) 最差:O(n^2) 退化为冒泡 空间复杂度: 递归消耗栈空间 最坏:O(logn) 最好:O(n) 退化为冒泡 2、C#实现 QuickSort. 阅读全文
posted @ 2019-11-08 09:52 Fflyqaq 阅读(204) 评论(0) 推荐(0)
摘要:[Toc] 本文为排序算法 冒泡排序的代码实现。 作者水平比较差,有错误的地方请见谅。 1、冒泡排序 冒泡排序属于交换排序。 排序最好情况:为正序,需进行 1 趟排序,进行 n 1 次比较和0次移动数据。 排序最坏情况:为逆序,需进行 n 1 趟排序,进行 n^2/2 次比较和 n^2/2 3 次移 阅读全文
posted @ 2019-11-08 09:51 Fflyqaq 阅读(259) 评论(0) 推荐(0)
摘要:[Toc] 本文为数据结构 顺序队列的代码实现。 作者水平比较差,有错误的地方请见谅。 1、C 实现 队列接口 IQueue.cs 顺序队列 SeqQueue.cs C class Program { static void Main(string[] args) { region 顺序队列 IQu 阅读全文
posted @ 2019-11-06 20:22 Fflyqaq 阅读(291) 评论(0) 推荐(0)
摘要:[Toc] 本文为数据结构 链队列的代码实现。 作者水平比较差,有错误的地方请见谅。 1、C 实现 队列接口 IQueue.cs 链队列 LinkQueue.cs Program.cs 2、C++实现 队列接口 IQueue.cpp 链队列 LinkQueue.cpp main.cpp 3、lua实 阅读全文
posted @ 2019-11-06 20:22 Fflyqaq 阅读(218) 评论(0) 推荐(0)
摘要:[Toc] 本文为数据结构 链栈的代码实现。 作者水平比较差,有错误的地方请见谅。 1、C 实现 栈接口 IStack.cs 链栈 LinkStack.cs Program.cs 2、C++实现 栈接口 IStack.cpp 链栈 LinkStack.cpp main.cpp 4.2 lua中的冒号 阅读全文
posted @ 2019-11-05 17:00 Fflyqaq 阅读(398) 评论(0) 推荐(0)
摘要:[Toc] 本文为数据结构 顺序栈的代码实现。 作者水平比较差,有错误的地方请见谅。 1、C 实现 栈接口 IStack.cs 顺序栈 SeqStack.cs C class Program { static void Main(string[] args) { IStack strStack = 阅读全文
posted @ 2019-11-04 16:51 Fflyqaq 阅读(318) 评论(0) 推荐(0)
摘要:[Toc] 本文为数据结构 单链表的代码实现。 作者水平比较差,有错误的地方请见谅。 1、C 实现 线性表接口 IListDS.cs 单链表结点类 Node.cs 单链表类 LinkList.cs Program.cs 2、C++实现 线性表接口 IList.cpp 单链表 LinkList.cpp 阅读全文
posted @ 2019-11-03 15:17 Fflyqaq 阅读(237) 评论(0) 推荐(0)
摘要:[Toc] 本文为数据结构 顺序表的代码实现。 作者水平比较差,有错误的地方请见谅。 1、C 实现 使用数组和泛型来自己实现类似List集合效果。 IListDS.cs SeqList.cs C class Program { static void Main(string[] args) { IL 阅读全文
posted @ 2019-11-01 11:09 Fflyqaq 阅读(281) 评论(0) 推荐(0)