-
(1)、问题描述:给出2个序列,x是从1到m,y是从1到n,找出x和y的最长公共子序列?x:A B C B D A By:B D C A B A则:最长公共子序列长度为4,BDAB BCAB BCBA均为LCS(最长公共子序列);模型实现图:(2)、问题解决 代码实现了最长公共子序列的长度#include<stdio.h>
#define N &nbs
-
1、跳跃表 结构模型(双向链表) L1:某些数据的链表;(相当于快车) L2:底层所有数据的链表;(相当于慢车) L1和L2中键值相同的元素用链表连接起来2、理想跳跃表 跳跃表的这种数据结构就是二分查找(用链表模拟数组),差不多就是一颗二叉树,但是有太多的重复元素;查找的时间复杂度为:O(logn);3、跳跃表的插入和删除&
-
讨论怎么用随机化的方法,使得二叉搜索树在大部分情况下都能保持平衡?1、排序 将数组构建为二叉搜索树,在进行中序遍历,就可顺序输出; BST的时间复杂度为:O(nlogn);最坏情况:O(n^2);BST与快速排序的算法思想极为相似;2、随机化BST (1)、随机、均匀地打乱数组的序列; (2)、BST排序; 随机化BST树,排序的算法时间
-
1、直接映射表 查找数据时,直接定位,时间复杂度为:O(1); 局限性:浪费大量的内存空间;2、哈希表 (1)、用一个哈希函数Hash()来随机映射那些键;抽象模型 (2)、哈希冲突时: i、链地址法,时间复杂度最坏:O(n); 简单均匀哈希的时间复杂度:O(1+a);a:装载因子 哈希函数的选取:除留余数法;&n
-
问题描述:无序找第k小的数?1、解法一 先排好序,再找第k小个数;返回A[k-1];此解法的时间复杂度为:O(nlogn);2、解法二 情况一:k = 1 和 k = n 就是找数组的最小值和最大值; 情况二:找出中位数3、找中位数(随机选择算法) 利用快速排序的原理,一轮排序,有2种情况: if i = k-1;返回a[i]; 
-
1、最基础排序算法 时间复杂度稳定性冒泡排序 O(n^2)稳定选择排序 O(n^2)不稳定插入排序 O(n^2)稳定2、5个中间改良排序算法时间复杂度稳定性归并排序O(nlogn)稳定希尔排序平
-
1、计数排序 (1)、算法思想 是一组在特定范围内的整数,在线性时间内排序,比nlog(n)更快的排序算法; 较小范围内是比较好的排序算法,如果很大是很差的排序算法; 可以解决重复元素的出现的排序算法; (2)、代码实现#include<stdio.h>
void countSort(int
-
1、桶排序 可以排序的范围数较小,是一种以空间换时间的排序算法; 不考虑重复元素的出现---->桶排;解决方案在计数排序; (1)、代码实现#include<stdio.h>
void bucketSort(int *a, int count);
void showArray(int 
-
1、随机化快速排序算法 (1)、快速排序的坏处:完全顺序/完全逆序时时间复杂度为:O(n^2),其余的情况时间复杂度为:O(nlogn),算法的效率与输入顺序有关; (2)、随机选择主元,好处:其运行时间不依赖于输入序列的顺序,算法的效率与输入的顺序无关; (3)、最差的情况由随机数产生器决定,随机化快速排序的时间复杂度为:O(nlogn);2、比较排序的算法模
-
1、希尔排序 (1)、算法思想:希尔排序是插入排序的改良算法,增加了一个步长step,每次插入排序使步长为step的元素形成一个递增序列,然后缩小增量,继续插入,直至step=1时,就是插入排序了,此时排序完成; 算法模型: (2)、代码实现#include<stdio.h>
void insertSort(int *a,&nb
-
1、选择排序 (1)、算法思想:依次是下标为(0,1,2,....n)的数字和其后的所有数字进行比较,每一轮的比较结果:都先确定最前面的是最小的数字; (2)、代码实现#include<stdio.h>
void sort(int *a, int count);
void showArray(int
-
1、二分查找 (1)、二分查找递归实现#include<stdio.h>
#define NOT_FOUND -1;
int binSearch(int *a, int head, int tail, int key);
-
算法导论:主要关注的是程序的性能;速度令人渴望!!!排序算法是经典算法1、插入排序 (1)、算法模型 (2)、代码实现#include<stdio.h>
void insertSort(int *a, int count);
void showArray(int *a, int c
汇天下豪杰
分享到朋友圈
- 关注技术:C/C++ python
- 入住博客:2016-05-13 4.7年