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语言程序设计有所帮助。