算法、数据结构、排序



如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功。

想写出精炼、优秀的代码,不通过不断的锤炼,是很难做到的。

开这个系列的目的是为了自我不断积累。不积跬步无以至千里嘛。 


数据结构篇


线性表

顺序表的算法

单链表的算法

双链表的算法

循环链表的算法

队列 

 

算法篇


五大经典算法 

经典算法不是真的算法,是一种思路,一种解决问题的方法。

俗语说,万变不离其宗。算法也有一定的套路,大部分都可以归结为五种经典算法。

既然要学习算法,当然应该先从基本套路入手,熟悉了套路,掌握各种算法想必事半功倍。 

 

分​治​法

动​态规划

贪​心​算​法​

回​溯​法​ 

分​支​定​界​法

 

字符串 

字符串 模式匹配

 

查找 

查找一 线性表的查找

查找二 树表的查找(涉及大量树结构的概念,不在这里讲述)

查找三 哈希表的查找


排序 

 



算法分析
下表给出各种排序的基本性能,具体分析请参看各排序的详解。
排序类别 排序方法 时间复杂度 空间复杂度 稳定性 复杂性
平均情况 最坏情况 最好情况
交换排序 冒泡排序 O(n2) O(n2) O(n) O(1) 稳定 简单
快速排序 O(nlog2n) O(n2) O(nlog2n) O(nlog2n) 不稳定 较复杂
插入排序 直接插入排序 O(n2) O(n2) O(n) O(1) 稳定 简单
希尔排序 O(nlog2n) O(n1.5)   O(1) 不稳定 较复杂
选择排序 简单选择排序 O(n2) O(n2) O(n2) O(1) 不稳定 简单
堆排序 O(nlog2n) O(nlog2n) O(nlog2n) O(1) 不稳定 较复杂
归并排序 归并排序 O(nlog2n) O(nlog2n) O(nlog2n) O(n) 稳定 较复杂
基数排序 基数排序 O(d(n+r)) O(d(n+r)) O(d(n+r)) O(n+r) 稳定 较复杂

 

 



如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功。

想写出精炼、优秀的代码,不通过不断的锤炼,是很难做到的。

开这个系列的目的是为了自我不断积累。不积跬步无以至千里嘛。 


数据结构篇


线性表

顺序表的算法

单链表的算法

双链表的算法

循环链表的算法

队列 

 

算法篇


五大经典算法 

经典算法不是真的算法,是一种思路,一种解决问题的方法。

俗语说,万变不离其宗。算法也有一定的套路,大部分都可以归结为五种经典算法。

既然要学习算法,当然应该先从基本套路入手,熟悉了套路,掌握各种算法想必事半功倍。 

 

分​治​法

动​态规划

贪​心​算​法​

回​溯​法​ 

分​支​定​界​法

 

字符串 

字符串 模式匹配

 

查找 

查找一 线性表的查找

查找二 树表的查找(涉及大量树结构的概念,不在这里讲述)

查找三 哈希表的查找


排序 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值