数据结构C语言——实现各种排序算法

来源:百度知道 编辑:UC知道 时间:2024/05/25 17:35:30
功能要求:实现直接插入算法、希尔排序算法、冒泡法排序算法、简单选择排序和快速排序算法。存储结构自己选择。

要整个一套程序,这些算法都包含在那一套程序里,可以在主函数里随意调用任何一个。 要调试后的代码,拿来直接能运行的。 最好附带一些简单的讲解。。。对了,要数据结构那种的编写!~~

各路神仙,各位大侠们,快帮帮小弟我吧!!!谢谢了!!!

刚做完的
#include <iostream>
using namespace std;

void BiInsertsort(int r[], int n) //插入排序(折半)
{
for(int i=2;i<=n;i++)
{
if (r[i]<r[i-1])
{
r[0] = r[i]; //设置哨兵
int low=1,high=i-1; //折半查找
while (low<=high)
{
int mid=(low+high)/2;
if (r[0]<r[mid]) high=mid-1;
else low = mid+1;
}
int j;
for (j=i-1;j>high;j--) r[j+1] = r[j]; //后移
r[j+1] = r[0];
}
}
for(int k=1;k<=n;k++) cout<<r[k]<<" ";
cout<<"\n";
}

void ShellSort ( int r[], int n) //希尔排序
{
for(int d=n/2;d>=1;d=d/2) //以d为增量进行直接插入排序
{
for (int i=d+1;i<=n;i++)
{
r[0] = r[i]; //暂存被插入记录
int j;
for( j=i-d; j>0 && r[0]<r[j]; j=j-d) r[j