一个菜鸟的算法导论学习笔记【Chapter 2】
来源:互联网 发布:打印机监控软件 编辑:程序博客网 时间:2024/06/06 08:26
Chapter 2 Getting Started
2.1 Insertion sort
#include<stdio.h>#include<iostream>using namespace std;int a[10]={123,134,3452,234,65,434,234,978,11234,345};int main()//由小到大排序 {for(int i=0;i<10;i++){int j=i;int key=a[i];for(;j>0&&a[j-1]>=key;j--)a[j]=a[j-1];a[j]=key;}for(int i=0;i<10;i++)cout<<a[i]<<"\t";return 0; }
2.2 Analyzing algorithms
usually use worst-case analysis
oder of growth :
eg:
n^3/1000 -100n^2-100n, the order of order of growth is theta(n^3)
2.3 Designing algorithms
divide and conquer
Divide>>>Conquer>>>Combine
eg:
Merge sort
int a[100], b[100];void Merge(int*a,int p,int q,int r){int p1=p,p2=q+1,p3=0;while(p1<=q&&p2<=r)b[p3++]=a[p1]<a[p2]?a[p1++]:a[p2++];while(p1<=q)b[p3++]=a[p1++];while(p2<=r)b[p3++]=a[p2++];for(int i=p;i<=r;i++)a[i]=b[i-p];return;}void MergeSort(int *a,int p,int r)//对数组a,从第p位到第r位由小到大排序{if(p>=r)return;int q=(p+r)/2;MergeSort(a,p,q);MergeSort(a,q+1,r);Merge(a,p,q,r);//Combinereturn; }
theta(nln(n))
0 0
- 一个菜鸟的算法导论学习笔记【Chapter 2】
- 一个菜鸟的算法导论学习笔记【Introsuction&Chapter 1】
- 一个菜鸟的算法导论学习笔记【Chapter 3】
- 一个菜鸟的算法导论学习笔记【Chapter 4】
- Introduction to Algorithms (算法导论) 学习笔记 -- Chapter 9
- 《算法导论》学习笔记之Chapter 2-2.1,2.2,2.3插入排序,选择排序,归并排序
- 算法导论学习笔记-2
- 算法导论学习笔记-2
- 《算法导论》学习笔记
- 《算法导论》学习笔记
- 算法导论学习笔记
- 《算法导论》学习笔记
- 算法导论(C++实现) chapter 2
- 算法导论学习笔记--2--堆排序
- 算法导论-学习笔记(2)
- 《算法导论》学习摘要chapter-6——堆排序
- 《算法导论》学习摘要chapter-6——优先队列
- 《算法导论》学习摘要chapter-7——快速排序
- Unity webGL以及HTML与unity通信
- JBPM开发环境准备
- JVM中的逃逸分析
- 卡萨帝洗衣机这场技术战重新定义了滚筒
- eclipse中项目名称修改后部署到tomcat中应用名称仍然是旧的
- 一个菜鸟的算法导论学习笔记【Chapter 2】
- 如何使用就做啦 DedeCms 标签生成器仿站?
- open 总是失败 返回-1 android6.0 selinux策略问题
- Shader编程学习笔记(一)—— 图形硬件简史与可编程管线
- 对jquery中on,bind,delegate,live添加事件的总结
- Android:padding和android:layout_margin的区别
- XML基础
- JEDEC79-4翻译告一段落
- maven-pom.xml