基本信息
源码名称:各种排序算法的实现
源码大小:6.89KB
文件格式:.c
开发语言:C/C++
更新时间:2021-11-05
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
各种排序算法的实现

void InsertSort(LineList r[],int n)
{   /*直接插入排序函数*/
int i,j;
    for(i=2;i<=n;i )/*从第2个元素开始依次插到前面已排好序列中*/
    {
        r[0]=r[i];      /*r[0]设为监视哨*/
        j=i-1;
        while(r[0].Key<r[j].Key) 
        {  /*若要插入元素小于j位置元素,则后移j位置元素*/
           r[j 1]=r[j];
           j=j-1;
        }
        r[j 1]=r[0];  /*将原来r[i]中的记录放入第j 1个空出的位置*/
    }
}

void ShellSort(LineList r[],int n)
{ /*希尔排序算法函数*/
  int i,j,d;
  d=n/2;                    /*初始步长为表长的一半*/
  while(d>0)
  { for(i=d;i<=n;i )
    {
        r[0]=r[i];          /*设监视哨*/
     j=i-d;
        while(j>=0 && r[0].Key<r[j].Key)
         {
           r[j d]=r[j];
           j=j-d;
         }
        r[j d]=r[0];
        j=j-d;
    }
    d=d/2;
  }
}

void  BubbleSort(LineList r[],int n)
{   /*冒泡排序算法函数*/
int i,j, exchange;
    LineList temp;
for (i=1;i<n;i )  /*进行每趟比较*/
{   exchange=0;    /*本趟比较是否有交换变量*/
    for (j=1;j<=n-i;j )  /*从第1个到第n-i个记录进行一趟比较*/
    if (r[j].Key>r[j 1].Key) /*若前面记录大于后面记录则交换*/
    {   temp=r[j];
            r[j]=r[j 1];
            r[j 1]=temp;
            exchange=1;
        }
    if (exchange==0) return;  /*若本趟比较没有交换,则提前结束循环*/
}
}