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

浙公网安备 33010602011771号