插入排序
最近看《算法导论》,它对一些算法提供了伪代码,我就想用c/c++把它实现出来。插入排序的伪码:
insertion_sort(A)for j <--2 to length do key <-- A //insert A into the sorted sequence A i <-- j-1 while i>0 and A>key do A <-- A i <-- i-1 A <-- 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;i=j-1;while(i>=0 && a>key){a=a;i=i-1;}a=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); //计算数组的个数insertion_sort(a,len);for(i=0;i<len;i++){printf("%d\n",a);}return 0;} 以上只是简单的对int型进行排序,还打算用c++的模板写一个泛型的插入算法。到时候写好以后再发上来。
页:
[1]