Python 基础算法
来源:互联网 发布:淘宝男士运动秋装 编辑:程序博客网 时间:2024/06/15 06:17
算法是指解题方案的准确和描述,那么衡量一个算法的优劣可以用时间复杂度和空间复杂度来表示。
1.时间复杂度:O(1),O(n),O(n^2),O(n^3),O(log2n),O(nlog2n),O(n!)等等
比如说:
a = 2 是O(1)
O(n^2)
交换i和j的内容
sum=0; (一次)
for(i=1;i<=n;i++) (n次 )
for(j=1;j<=n;j++) (n^2次 )
sum++; (n^2次 )
解:T(n)=2n^2+n+1 =O(n^2)
for (i=1;i<n;i++)
{
y=y+1; ①
for (j=0;j<=(2*n);j++)
x++; ②
}
解: 语句1的频度是n-1
语句2的频度是(n-1)*(2n+1)=2n^2-n-1
f(n)=2n^2-n-1+(n-1)=2n^2-2
该程序的时间复杂度T(n)=O(n^2).
a=0;
b=1; ①
for (i=1;i<=n;i++) ②
{
s=a+b; ③
b=a; ④
a=s; ⑤
}
解:语句1的频度:2,
语句2的频度: n,
语句3的频度: n-1,
语句4的频度:n-1,
语句5的频度:n-1,
T(n)=2+n+3(n-1)=4n-1=O(n).
i=1; ①
while (i<=n)
i=i*2; ②
解: 语句1的频度是1,
设语句2的频度是f(n), 则:2^f(n)<=n;f(n)<=log2n
取最大值f(n)= log2n,
T(n)=O(log2n )
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
{
for(k=0;k<j;k++)
x=x+2;
}
}
2.基本算法
(1)冒泡算法(O(n^2))
data = [1,2,3,6,9,7,45,12]
(2)最小算法(O(n))loop_count = 0for i in range(len(data)): for j in range(len(data) - i - 1): if data[j] < data[j+1]: tmp = data[j] data[j] = data[j+1] data[j+1] = tmp loop_count += 1 print(data)print(data)print('time:', loop_count)
loop_count = 0mid_num = data[0]for i in range(1, len(data)): if data[i] > mid_num: mid_num = mid_num else: mid_num = data[i] loop_count += 1print(mid_num)print(loop_count)3.插入排序
for index in range(1, len(data)): currunt_num = data[index] position = index while position > 0 and data[position - 1] >currunt_num: data[position] = data[position - 1] position -= 1 data[position] = currunt_numprint(data)
- Python 基础算法
- 基础算法(python)
- 几个Python中的基础算法
- Python基础算法/剑指offer
- 基础算法的Python实现
- Python 算法基础 排序实现
- 【Python】Python基础排序算法实现
- 《算法基础》所有算法的Python实现
- 【python新手】---基础算法(1)
- Python程序设计基础 数据结构与算法习题
- 熟悉Python的各种基础小算法
- 基础机器学习算法Python实现
- 基础算法——查找(二分法)(python)
- python基础实例5:排序算法
- Openev3 python基础学习4——基础滤波算法
- 七月算法课程《python爬虫》第二课: Python基础
- 算法导论详解(1) 第二章算法基础+python实现
- [Python脚本]——基础算法篇之查找
- "errcode":50001,"errmsg":"redirect_uri unauthorized"
- P1281 书的复制(二分)
- 高级面向对象 之 原型链
- 斗地主
- 阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)
- Python 基础算法
- YOLO: Real-Time Object Detection解读
- 图——基本概念(Graph
- LeetCode#230. Kth Smallest Element in a BST
- 系统分析与设计学习笔记(三)活动图与状态图
- Storm(三):Storm入门Demo
- Codeforces 749 B Parallelogram is Back(自定义set去重)
- MyEclipse的工作空间设置默认字符集
- Java ConcurrentModificationException 异常分析与解决方案