《算法导论》打卡1,主要内容:插入排序,分治法,归并排序

第一部分 基础知识

第一章 算法在计算中的作用

1.1 算法

  • 算法就是任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或者值的集合作为输出
  • 规范书写:
问题:XXXX
输入:XXXXXXXX
输出:XXXXXXXX
算法步骤:
1.XXXXXXXXXXX
2.XXXXXXXXXXX
  • 注意问题与问题实例的区别。

1.2 作为一种技术的算法

  • 考虑效率:时间与空间资源的消耗

第二章 算法基础

2.1 插入排序

输入:n个数的一个序列<a1,a2,...,an>
输出:输入序列的一个排列<a1’,a2’,...,an’>,满足a1’≤a2’≤...≤an’
  • 算法:
#include<iostream>
using namespace std;void insertionsort(int *A,int length){//插入排序int key; //暂存当前位置的值int i;for(int j=1;j<length;j++){key = A[j]; //暂存当前位置的值i= j-1;while(i>=0 && A[i]>key){ //如果前面的值比key大,则交换A[i+1]=A[i];i=i-1;}A[i+1]=key;}
}
int main(){int A[9]={9,3,4,2,6,7,5,1,8}; //举了个栗子int length=sizeof(A)/sizeof(A[0]); //求数组的长度的一种方法insertionsort(A,length);//输出排序后的序列for(int i=0;i<length;i++){cout<<A[i]<<" ";}return 0;
}