首页 > 学院 > 开发设计 > 正文

从零开始学算法——01

2019-11-14 10:31:21
字体:
来源:转载
供稿:网友

假期在家颓废了好久,终于下决心好好学算法了。。。

用的书 是中文版的 《算法导论》还有刘汝佳的《算法竞赛入门经典》

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;    }}没啥区别!!!!!


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表