算法
算法
poixao
这个作者很懒,什么都没留下…
展开
-
线性表的查找
线性表的查找线性表查找的三种方式一、顺序查找顺序查找算法分析顺序查找的优缺点二、折半查找折半查找算法分析折半查找法的优缺点三、分块查找分块查找法算法分析分块查找的优缺点查找方法比较 线性表查找的三种方式 一、顺序查找 顺序查找算法分析 顺序查找的优缺点 二、折半查找 折半查找算法分析 折半查找法的优缺点 三、分块查找 分块查找法算法分析 分块查找的优缺点 查找方法比较 ...原创 2021-11-23 19:32:40 · 1090 阅读 · 0 评论 -
时间复杂度
1.我们知道常数项对函数的增长速度影响并不大,所以当 T(n) = c,c 为一个常数的时候,我们说这个算法的时间复杂度为 O(1); 如果 T(n) 不等于一个常数项时,直接将常数项省略。 比如 第一个 Hello, World 的例子中 T(n) = 2,所以我们说那个函数(算法)的时间复杂度为 O(1)。 T(n) = n + 29,此时时间复杂度为 O(n)。 2.我们知道高次项对于函数的增长速度的影响是最大的。n^3 的增长速度是远...原创 2021-09-19 21:25:46 · 91 阅读 · 0 评论 -
选择排序-堆排序
选择排序-堆排序堆的定义小根堆大根堆堆和序列的关系堆排序基本思想堆调整堆调整-算法描述构造推排序如何由一个无序堆建成一个堆如何处理堆顶记录如何调整剩余记录,成为一个新堆堆排序算法堆排序算法的性能分析 将无序数列构造成一个堆(完全二叉树) 二叉树的根结点就是数组的的第一个元素,为二叉树中的最大值 堆的定义 小根堆 小根堆的根结点是所有结点的最小值 大根堆 大根堆的根结点是所有结点的最大值 堆和序列的关系 堆排序基本思想 堆调整原创 2021-11-28 10:39:05 · 473 阅读 · 0 评论 -
散列表的查找
散列表的查找1.散列表的基本概念散列表的若干术语2. 散列函数的构造直接定址法除留余数法数字分析法平方取中法折叠法3. 处理冲突问题开放地址法线性探测法二次探测法伪随机法链地址法4. 散列表的查找及性能分析结论 1.散列表的基本概念 散列表的若干术语 2. 散列函数的构造 直接定址法 除留余数法 哈希表的长度是要比数据元素略大的质数 p要 ≤ 哈希表表长的质数 数字分析法 平方取中法 折叠法 3. 处理冲突问题 开放地址法 线性探测法 二次探测法 伪随机法原创 2021-11-26 12:59:49 · 375 阅读 · 0 评论 -
排序的概念
排序的概念什么是排序排序的分类学习排序所使用的存储结构 什么是排序 排序的分类 学习排序所使用的存储结构原创 2021-11-26 21:35:43 · 164 阅读 · 0 评论 -
排序-归并排序
排序-归并排序归并排序的基本思想演示程序执行过程归并排序算法分析 归并排序的基本思想 void MSort(SqList* L, RedType* T, int left, int right) { //中间位置 int mid; //只有一个元素的区域,本身就是有序的,返回上层递归,准备合并 if (left < right) { mid = (left + right) / 2; //递归划分左半部分 MSort(L, T, left, mid); //递原创 2021-11-28 14:15:37 · 311 阅读 · 0 评论 -
插入排序-希尔排序
排序-希尔排序希尔排序的基本思想希尔排序实现希尔排序算法分析 希尔排序的基本思想 颜色相同的为一组 数列根据增量(d)为一组,来进行排序 希尔排序实现 希尔排序算法分析 ...原创 2021-11-27 13:47:53 · 163 阅读 · 0 评论 -
直接插入排序
直接插入排序插入排序的方法插入排序的分类直接插入排序直接插入排序-性能分析 插入排序的方法 插入排序的分类 直接插入排序 i是带待排序列的第一个 j是有序序列的最后一个 将L[i] 复制到哨兵为L[0] 判断L[j] > L[0] 7 3 5 10 16 7 32 83 23 54 29 96 ↑ j i 哨兵 L[j] > L[0],需要将j往后挪一位,然后j– 7 3 5 10 16 16 32 83 23 54 29 96 ↑原创 2021-11-26 22:47:00 · 52 阅读 · 0 评论 -
排序-基数排序
基数排序的基本思想 基数排序的实现过程 基数排序算法分析原创 2021-11-28 16:26:13 · 55 阅读 · 0 评论 -
交换排序-快速排序
交换排序-快速排序构造快速排序如何选取轴值如何实现一次划分获取轴值后,如何处理分割得到的两个待排序子序列如何判别快速排序的结束快速排序的性能分析交换排序小结 构造快速排序 如何选取轴值 如何实现一次划分 如何将数列划分成下面这样 比轴值小的最轴值左边,比轴值大的在轴值右边 算法动画模拟 i = 数列的第一个元素位置 j = 数列的最后一个元素位置 第1次循环 先从后往前找 L[j] (69) > L[i] (49) 为真 j--; L[j] (27) >原创 2021-11-27 19:11:29 · 331 阅读 · 0 评论 -
各种排序的算法比较
各种排序的算法比较时间性能空间性能排序方法的稳定性能关于“排序方法的时间复杂度的下限” 时间性能 空间性能 排序方法的稳定性能 关于“排序方法的时间复杂度的下限” ...原创 2021-11-28 16:41:45 · 147 阅读 · 0 评论 -
简单选择排序
简单选择排序选择排序的原理简单选择排序的原理简单排序算法实现选择排序性能分析 选择排序的原理 简单选择排序的原理 简单排序算法实现 选择排序性能分析原创 2021-11-27 21:10:52 · 141 阅读 · 0 评论 -
折半插入排序
折半插入排序折半插入算法实现折半插入排序-算法分析 折半插入算法实现 折半插入就是对有序队列进行折半查找找到插入位置 将要插入的数据放置哨兵位 L[0] = L[i] 7 3 5 10 16 7 32 83 23 54 29 96 ↑ low i-1 i 哨兵 high mid = (low+high)/2 L[0] > mid low = mid+1 0 1 2 3 4 5原创 2021-11-27 10:02:32 · 249 阅读 · 0 评论 -
交换排序-冒泡排序
交换排序-冒泡排序交换排序的思想改进冒泡排序如何记录一趟排序过程中交换的多个记录如何确定冒泡排序的范围如何判别冒泡排序的结束实现冒泡排序算法分析 交换排序的思想 在第一次比完后后面两个数已经是有序的了 但在经典算法中,只有在第2次循环中,倒数第二个数还会比较一次 因此,经典的冒泡排序的效率是比较低的 改进冒泡排序 如何记录一趟排序过程中交换的多个记录 如何确定冒泡排序的范围 如何判别冒泡排序的结束 &nb原创 2021-11-27 15:30:07 · 506 阅读 · 0 评论 -
查找的基本概念
原创 2021-11-23 12:45:58 · 75 阅读 · 0 评论