您的位置:首页 > 其它

经典排序之插入排序

2016-04-25 22:15 169 查看
插入排序的思路可以这样形象地理解:整理手中的扑克牌,每抓到一张牌,比较它与之前手中的牌的大小,插在合理的位置。

对于少量元素的排序,它是一个有效的算法。它的时间复杂度为 O(n^2)

#include <iostream>
using namespace std;

int main(){     //插入排序
int a[] = {5,2,4,6,1,3};
int i,j,key;
int length = sizeof(a)/sizeof(int);  //获取数组长度
for(j=1;j<length;j++){
key = a[j];
i = j-1;
while(i>=0 && key <= a[i]){
a[i+1] = a[i];
i--;
}
a[i+1] = key;
}
for(i=0;i<length;i++)
cout<<a[i]<<" ";
return 0;
}


今天在《算法导论》中,看到这样一段话,很受启发。是否具有算法知识与技术的坚实基础是区分真正熟练的程序员与初学者的一个特征。使用现代计算技术,如果你对算法懂得不多,你也可以完成一些任务,但是,如果有一个好的算法背景,那么你可以做的事情就多得多。

我希望有越来越多的人在本科阶段注重算法和数据结构方面的知识,因为这是基础中的基础,而不是看似很有前途的web开发、安卓IOS开发等等。要知道,基础不牢,地动山摇。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: