C++ 数据结构
summerlq
加油
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 快速排序算法
快速排序算法最坏的时间复杂度时o(n*n),期望的运行时间为o(nlgn)。 逻辑分析: 1 先从数组中选取一个数作为基数,可随机选择; 2 将数组中大于该基数的放在该基数右边,小于该基数的放在该基数左边; 3对左右两个数组重复第二步。 代码分析 数组a[]={2,1,4,5,3,8,7,9,0,6},该数组第一次分区时,left=0,right=10,假设随机基数为a[4]=3。 ...原创 2018-07-25 17:19:46 · 2350 阅读 · 0 评论 -
波拉契尔数列 C++
题目:写一个函数,输入n, 求斐波那契数列的第n项。 分析:该题有两种实现方式递归或循环。当n比较大的时候f(n)结果也会比较大,故定义的时候可以采用long(int 也行)。递归会有大量的重复计算,而循环可以把f(n-1)和f(n-2)的值存起来,避免过多的重复计算。 上代码,先递归再循环。 #include<iostream> #include<cstdlib&...原创 2018-08-09 20:20:51 · 354 阅读 · 0 评论 -
求旋转数组的最小数字C++
发现还是数组这种最简单的编码才适合我,遇到树,链表这些真的是一头雾水,自己也不知道怎么实现。言归正传,该篇文章介绍如何求旋转数组的最小值,求最大值可以适当改编即可。 什么是旋转数组呢,就是将一个数组的前几个元素和后面几个元素互换位置。例如原数组(升序的数组)为{0,1,2,3,4,5,6,7,8,9},将其旋转后变为{5,6,7,8,9,0,1,2,3,4}。如何求该数组的最小值呢,有一种方法是...原创 2018-08-10 14:47:11 · 520 阅读 · 0 评论 -
深入理解二叉搜索树
什么是二叉搜索树? 顾名思义,一颗二叉搜索树是基于二叉树来组织的,它包括许多动态集合操作(Search,MiniNum, MaxiNum, Prodecessor, Successor, Insert 和Delete等)。二叉搜索树上的基本操作所花费的时间与这棵树的高度成正比,对呀有n个节点组成的完全二叉树来说,这些操作的最坏的运行时间是O(lg n)。 如图所示是一个搜索二叉树的结构。一...原创 2018-09-10 15:49:21 · 330 阅读 · 0 评论
分享