1、数据结构 1.1、线性表 1.2、栈 1.3、队列 1.4、树 1.5、图 2、排序 2.1、插入排序(Insertion Sort) 算法思想:每趟将一个待排序的关键字,按照其值的大小插入到已经排好的部分序列中。 时间复杂度:O(n*n) 空间复杂度:O(1) 2.2、希尔排序(Shell S ...
分类:
编程语言 时间:
2018-11-15 00:16:35
阅读次数:
166
题目描述: 给定一个二叉树,返回它的中序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 数据结构定义: 算法思想: 分析总结: ...
分类:
编程语言 时间:
2018-11-07 11:36:29
阅读次数:
146
题目描述: 给定一个二叉树,返回它的 前序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 数据结构定义: 算法思想: 分析总结: ...
分类:
编程语言 时间:
2018-11-07 11:36:21
阅读次数:
149
题目描述: 给定一个二叉树,返回它的 后序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 数据结构定义: 算法思想: 分析总结: ...
分类:
编程语言 时间:
2018-11-07 11:28:07
阅读次数:
199
冒泡排序分析 什么是冒泡排序 冒泡排序是一种交换排序。 什么是交换排序呢? 交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。 算法思想 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再 ...
分类:
编程语言 时间:
2018-11-05 21:24:48
阅读次数:
225
一,算法思想:要实现快速排序,一般策略是先随意的选取a[left]作为切分的基准元素,通俗来讲就是标志元素,往后循环都和这个标志元素进行比较。然后我们循环从数组的右端开始往左端循环找寻小于切分元素的元素a[j],再从左端向右端寻找大于切分元素的元素a[i],使此时的a[i]和a[j]交换,再重复进行 ...
分类:
编程语言 时间:
2018-10-30 11:18:10
阅读次数:
134
问题描述:已知n种物品和一个可容纳c重量的背包,物品 i 的重量为wi ,产生的效益为pi 。装包时物品可以拆,即只装物品的一部分或者全部或者不装。最大的重量不能超过c。 求整体效益最大。 算法思想:首先先求单位重量效益最高的(即 pi 除 wi 最大的),如果此时的 c 大于 wi 就全部装入(s ...
分类:
其他好文 时间:
2018-10-19 00:21:52
阅读次数:
135
一.对二分法思想的体会 二分法主要用于有序数组中查找元素,其时间复杂度相比之下更小。 不断变换指针位置缩小查找区间范围。 其主要代码为: 二.结对编程情况汇报 和能力强的同学一起组队,有很多值得学习的地方,比如算法思想、代码风格,甚至快捷键的使用。 探讨思想后合作完成代码,可以理清思路再动手实践,收 ...
分类:
其他好文 时间:
2018-10-16 02:04:24
阅读次数:
122
实验题目: 7-1 二分查找 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 输入格式: 输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。 输出格式: 输出x所 ...
分类:
其他好文 时间:
2018-10-14 13:46:42
阅读次数:
134
学了算法的第二章以后,我对于算法思想有了进一步的理解。分治法的化繁为简,化难为易的思想,在日常生活中也能很好地体现出来。如果应用得当,往往能起到峰回路转,茅塞顿开的效果。 第二章的PTA实践,第一第二题其实检验了我们对二分搜索的掌握,以及算法的改写能力。第三题我觉得有点难度,因为它给出的序列最大长度 ...
分类:
编程语言 时间:
2018-10-14 11:43:21
阅读次数:
130