算法与数据结构
Mr丶D
这个作者很懒,什么都没留下…
展开
-
算法与数据结构(1)- 算法时间效率的分析
概述数据结构和算法是一名程序开发人员的必备基本功,不是一朝一夕就能练成绝世高手的。冰冻三尺非一日之寒,需要我们平时不断的主动去学习积累。引入先来看一道题:如果 a+b+c=1000,且 a^2 + b ^2 = c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?我们使用穷举法和枚举来分析:循环遍历 a b c 满足条件的输出。代码如下:import tim...原创 2019-05-27 16:35:14 · 4028 阅读 · 0 评论 -
算法与数据结构(2)- 算法的复杂度
时间复杂度与“大O记法”我们假定计算机执行算法每一个基本操作的时间是固定的一个时间单位,那么有多少个基本操作就代表会花费多少时间单位。显然对于不同的机器环境而言,确切的单位时间是不同的,但是对于算法进行多少个基本操作(即花费多少时间单位)在规模数量级上却是相同的,由此可以忽略机器环境的影响而客观的反应算法的时间效率。对于算法的时间效率,我们可以用“大O记法”来表示。“大O记法”:对于单调的整...原创 2019-05-28 10:35:55 · 635 阅读 · 0 评论 -
Python列表类型性能测试以及内置字典操作的时间复杂度分析
timeit模块timeit模块可以用来测试一小段Python代码的执行速度。class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)Timer是测量小段代码执行速度的类。stmt参数是要测试的代码语句(statment);setup参数是运行代码时需要的设置;timer参数是一个定时器函数,...原创 2019-06-01 11:41:59 · 1362 阅读 · 1 评论 -
算法与数据结构(3)- 排序算法的稳定性
排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。排序算法的稳定性稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。当相等的元素是无法分辨的,比如像是整数,稳定性并不是一个问题。然而,假设以下的数对将要以...原创 2019-06-13 09:08:02 · 429 阅读 · 0 评论 -
冒泡排序/选择排序/插入排序(C语言版实现)
交换函数// 交换俩个指针对应的值int swap(int *x,int *y){ int temp; temp = *x; *x = *y; *y = temp;}冒泡排序// 冒泡排序void bubbleSort(int *array,int n){ puts("bubbleSort"); int i,j,isSorted; for (i = 0; i <...原创 2019-07-16 10:09:40 · 431 阅读 · 0 评论 -
数据结构总结(针对考研)
第一章1. 深刻理解数据结构的概念,掌握数据结结构的“三要素”:逻辑结构、物理(存储)结构在这种结构上所定义的运算。2. 掌握计算语句频度和估算算法时间复杂度的方法。掌握常见算法、经典算法的时间复杂度和空间复杂度。第二章 线性表大纲要求1. 线性表的逻辑结构...原创 2019-08-06 14:23:45 · 1284 阅读 · 1 评论 -
栈的应用之表达式求值
将中缀表达式转换成后缀表达式如下中缀表达式转换为后缀表达式的过程 (5 + 20 + 1*3) / 141. 按运算符优先级对所有运算符和它的运算数加括号。(原来有括号的不用加)2. 把位运算符移到对应的括号后. .移动完毕后,如下所示:3. 去掉括号![在这里插入图片描述](https://img-blog.csdnimg.cn/20190918164713732....原创 2019-09-18 16:58:44 · 276 阅读 · 0 评论