C++程序,我算法实现了,但是希尔排序结果不对,快速排序是死循环,,急急急!

来源:百度知道 编辑:UC知道 时间:2024/06/21 23:44:41
#include<iostream>
#include<algorithm>
#include<time.h>
#include<stdlib.h>
using namespace std;
class sorted//定义类
{
public:
void fastsort(long a[30000],int begin,int p) ;//快速排序
void shellsort(long a[30000],int begin,int last);//希尔排序
};
void sorted::shellsort(long array[],int begin,int last) //希尔排序
{
int a=begin,b=begin;
int temp,n=(last-begin+1)/2;
while (n!=0)
{
for (a=begin;a<n;a++)
{
for (b=a;b<=last-n;b=b+n)
{
if (array[b]>array[b+n])
{
temp=array[b];
array[b]=array[b+n];
array[b+n]=temp;
}
}
if (a!=(n-1) && array[a]>array[b]) //每个子序列的最后一个元素和下一个子序列的头元素进行比较!!
{
temp=array[a];
array[a]=array[b];
array[b]=temp;
}
}
n=n/2;
}
for(int q=0;q<last;q++)
cout<<'\

还是两个人写的?
运行时间的计算很简单 定义一个时间 结束减去开始啦
你的程序我是没看 当时我学习数据结构的时候 基本上是看着书本打进去的汗

都有现成的框架,为什么还要自己写啊 ?