六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 84|回复: 0

插入排序

[复制链接]

升级  40.67%

29

主题

29

主题

29

主题

秀才

Rank: 2

积分
111
 楼主| 发表于 2013-2-5 01:06:58 | 显示全部楼层 |阅读模式
  最近看《算法导论》,它对一些算法提供了伪代码,我就想用c/c++把它实现出来。
  插入排序的伪码:
 
insertion_sort(A)for j <--2 to length[A]    do key <-- A[j]        //insert A[j] into the sorted sequence A[1..j-1]        i <-- j-1        while i>0 and A[i]>key            do A[i+1] <-- A[i]                i <-- i-1        A[i+1] <-- key         我感觉这种伪代码对于算法的描述能力非常强,不过需要读懂上面那段伪码,还需要去查看《算法导论》中伪代码中的一些符号约定。
  我自己照猫画虎用c写了个int型的插入排序算法。
 
#include <stdio.h>bool insertion_sort(int a[],int len){int j;int i;int key; for(j=1;j<len;j++){key=a[j];i=j-1;while(i>=0 && a[i]>key){a[i+1]=a[i];i=i-1;}a[i+1]=key;}return true;}int main(void){int a[]={5,2,2,2,4,3,8,1,3};int i;int len;len=sizeof(a)/sizeof(a[0]); //计算数组的个数insertion_sort(a,len);for(i=0;i<len;i++){printf("%d\n",a[i]);}return 0;}  以上只是简单的对int型进行排序,还打算用c++的模板写一个泛型的插入算法。到时候写好以后再发上来。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表