假期在家颓废了好久,终于下决心好好学算法了。。。
用的书 是中文版的 《算法导论》还有刘汝佳的《算法竞赛入门经典》
OK 开始第一天的学习
插入排序
对于少量的元素,它是一个有效的算法
伪代码
INSERT-INTO(A) for j = 2 to j = A.length key = A[j] i = j - 1 while i >0 and A[i] > key A[i+1] = a[i] i = i -1 A[i+1] = key类似与我们打牌时,将手中的牌按大小排好。下标 j 指出正被插入到手中的“当前牌“
下面 用一组数据来表示插入排序
#include<iostream>using namespace std;int main(){ int a[] = {5,1,3,4,2,7,9,8,6}; int i,j; for(j=1;j<9;j++){ int key = a[j]; i=j-1; while(i>=0&&a[i]>key){ a[i+1] = a[i]; i-=1; } a[i+1] = key; } for(int i=0;i<9;i++){ cout<<a[i]<<" "; } return 0;}下面为多组数据#include<iostream>using namespace std;const int MAXX = 999;void insert_into(int a[],int n);int main(){ int n; int a[MAXX]; while(cin>>n){ for(int i=0;i<n;i++){ cin>>a[i]; } insert_into(a,n); for(int i=0;i<n;i++){ cout<<a[i]<<" "; } cout<<endl; } return 0;}void insert_into(int a[],int n){ int i,j; for(j=1;j<n;j++){ int key = a[j]; i = j-1; while(i>=0&&a[i]>key){ a[i+1] = a[i]; i = i-1; } a[i+1] = key; }}没啥区别!!!!!
新闻热点
疑难解答