算法
文章平均质量分 95
算法题
努力成长的tory
这个作者很懒,什么都没留下…
展开
-
排序算法总结
简单排序算法1、冒泡排序2、插入排序3、选择排序4、归并排序高级排序算法1、散列技术:桶排序、基数排序、奇数排序2、优先级队列:堆排序、锦标赛排序3、快速排序(1)思想:如果将左侧元素都小于等于它,右侧元素都大于等于它的元素称为轴点,那么在已经排好序的正序序列中,所有的元素都是轴点。因此可将排序看成是将轴点逐个归位的过程,基于此设计的算法称作快速排序,如何快速确定轴点是快排的核心。(2)和归并排序的区别:归并排序核心在于如何将子任务的解进行合并,而快速排序的核心在于如何分。(3)如何寻原创 2021-03-06 17:17:23 · 213 阅读 · 0 评论 -
列表结构接口实现
//// main.cpp// List//// Created by 杨涛睿 on 2020/8/9.// Copyright © 2020 杨涛睿. All rights reserved.//#include <iostream>typedef int Rank;#define Posi(T) ListNode<T>*using namespace std;template<typename T>struct ListNode{原创 2020-08-13 23:31:34 · 187 阅读 · 0 评论 -
Vector接口实现
//// Vector//// Created by 杨涛睿 on 2020/8/3.// Copyright © 2020 杨涛睿. All rights reserved.//#include <iostream>#include <stdio.h>#include <math.h>#include <string>#define DEFAULT_CAPACITY 3typedef int Rank;using names原创 2020-08-07 13:47:43 · 270 阅读 · 0 评论 -
树和二叉树
树的特点1、相对于列表和向量的区别:向量的优势在于静态操作,比如查找列表的优势在于动态操作,比如插入,删除树结构的由于在于可以兼顾静态和动态操作,可视作半线性结构,是无环连通图2、树结构的特点:1、与图论中的树不一样(1)数据结构中的树都要定义根结点(2)兄弟之间按照度数定义长幼次序,度数为结点拥有孩子的个数2、任何树结构所含的边数,等于所有结点的度数之和,也等于顶点总数-1,树的边数与顶点个数同阶,因此在衡量时间复杂度时,用顶点个数n作为参照3、无环连通性,因此根结点到任一结点存在唯原创 2020-08-02 23:21:18 · 309 阅读 · 0 评论 -
栈—表达式求值、进制转换
github地址:https://github.com/Tory123/Algorithm-test/blob/master/Stack.cpp//// main.cpp// Stack//// Created by 杨涛睿 on 2020/7/27.// Copyright © 2020 杨涛睿. All rights reserved.//#include <iostream>#include <stdio.h>#include <math.h原创 2020-08-01 03:06:24 · 183 阅读 · 0 评论 -
二分查找
二分查找(1)策略:每经过至多两次比较,或者命中,或者将问题规模缩减一半T(n)=O(1)+T(n/2)T(n)=O(1)+T(n/2)T(n)=O(1)+T(n/2)解得T(n)=O(logn)T(n)=O(logn)T(n)=O(logn)(2)实现:int binSearch(int value,int lo,int hi){ int mid; while(lo<hi){ mid = (lo+hi)>>1; if(value&原创 2020-07-26 15:45:51 · 127 阅读 · 0 评论 -
算法分析的方法
算法分析包含两个方面(1)正确性:不变性,单调性(2)复杂度:时间,空间,稳定性算法分析的方法:迭代式:级数求和递归式:递归跟踪 + 递推方程算法分析几个常用到的级数:1、算术级数(等差数列):T(n)=1+2+3+...+n=n(n+1)/2=O(n2)T(n) = 1+2+3+...+n = n(n+1)/2 =O(n^2)T(n)=1+2+3+...+n=n(n+1)/2=O(n2)2、幂方级数,结果比幂次高一阶:T2(n)=12+22+32+...+n2=n(n+1)(2n+1)原创 2020-07-21 23:48:58 · 2918 阅读 · 0 评论