C语言基本排序算法之插入排序与直接选择排序实现方法
本文实例讲述了C语言基本排序算法之插入排序与直接选择排序实现方法。分享给大家供大家参考,具体如下:
声明待排序元素类型
/*-------------------------- typedef.h 方便修改待排序元素类型 -------------------------------------*/ #ifndefTYPEDEF_H #defineTYPEDEF_H typedefintT; #endif
插入排序:
/*--------------------------------------------------------------------------------------- Insertion_sort.h 直接插入排序 对以数组形式给出的元素排序 时间复杂度为(逆序数)N(N-1)/4=O(N^2),并且在最坏情形下达到这个值 最好情形下运行N次,最坏情形下运行2+3+…+N ------------------------------------------------------------------------------------------------*/ #ifndefINSERTION_SORT_H #defineINSERTION_SORT_H #include"typedef.h" //直接插入排序 voidInsertion_sort(T*a,intn) { for(inti=1;i!=n;++i) { Ttemp=a[i]; intj=i-1; for(;j>=0&&temp直接选择排序:
/*---------------------------------------------- DirectSelection_sort.h 直接选择排序 时间复杂度O(N^2) --------------------------------------------------------*/ #ifndefDIRECTSELECTION_SORT_H #defineDIRECTSELECTION_SORT_H #include"typedef.h" #include"swap.h" //直接选择法排序 voidDirectSelection_sort(T*a,intn) { for(inti=0;i!=n;++i) { intk=i; for(intj=i;j!=n;++j) if(a[j]希望本文所述对大家C语言程序设计有所帮助。