int partion(int data[],int m,int n)
{
int privot=data[m];
int i=m;
int j=n;
while(i<j)
{
while(i<j && data[j]>=privot)
j--;
if(i<j)
{
data[i++]=data[j];
}
while(i<j && data[i]<=privot)
i++;
if(i<j)
data[j--]=data[i];
}
data[i]=privot;
return i;
}
void quickSort(int data[],int m,int n)
{
int pivotpos;
if(m<n)
{
pivotpos=partion(data,m,n);
quickSort(data,m,pivotpos-1);
quickSort(data,pivotpos+1,n);
}
}
void speedPX()
{
int data[LENGTH];
for (int i=0;i<LENGTH;i++)
{
printf("please input %dst number\n",i);
scanf("%d",&data[i]);
}
for (int i=0;i<LENGTH;i++)
{
printf("%d ",data[i]);
}
printf("\n");
gzwPX(data,0,LENGTH-1);
//quickSort(data,0,LENGTH-1);
for(int i=0;i<LENGTH;i++)
{
printf("%d ",data[i]);
}
printf("\n");
}
冒泡排序算法:
void maoPao(int data[],int length)
{
for (int i=0;i<length;i++)
for(int j=i+1;j<length;j++)
{
int temp;
if (data[i]>data[j])
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
}
void maoPao1(int data[],int length)
{
int exchange=0;
for (int i=0;i<length;i++)
{
for(int j=0;j<length-i-1;j++)
{
int temp;
if(data[j]<data[j+1])
{
temp=data[j+1];
data[j+1]=data[j];
data[j]=temp;
exchange=1;
}
}
if(0==exchange)
{
break;
}
}
}
She来了排序算法。。。又是找了半天BUG。。。。
void shellPass(int data[],int inc)
{
for(int i=inc;i<LENGTH;i++)
{
int temp=data[i];
int j=i-inc;
while( j>=0 && data[j]>temp)//这个>=如果为>则错误了
{
data[j+inc]=data[j];
j=j-inc;
}
data[j+inc]=temp;//在合适的位置插入temp的值
}
}
void shellSort(int data[],int length)
{
int inc=length;
do
{
inc=inc/3+1;
shellPass(data,inc);
}while(inc>1);
}