您的位置:首页 > 编程语言 > C语言/C++

快速排序算法的实现

2016-01-27 19:48 274 查看
/*
作者:秦时小
专业:计算机科学与技术
学校:咸阳师范学院 2013级
时间:2016.01.27

程序名称:快速排序算法的实现
程序功能:
*/

#include <stdio.h>

//快速排序
//low和high表示的是下标。以中间元素为基准值
void quickSort(int* arr,int low,int high)
{
if(low>=high)
return;
int p=(high+low)/2;//p指向中间元素
int key=*(arr+p);
int i=low,j=high;
while(i<j)
{
while( *(arr+i)<=key&&i<p)//第一次这里漏写了i<p
i++;
if(i<p)
{
*(arr+p)=*(arr+i);
p=i;
}
while(*(arr+j)>key&&j>p)//第一次这里漏写了j>p
j--;
if(j>p)
{
*(arr+p)=*(arr+j);
p=j;
}
}
*(arr+p)=key;
quickSort(arr,low,p-1);
quickSort(arr,p+1,high);
}

int main(void)
{
int arr[]={5,1,9,2,8,3,6,4,7};
quickSort(arr,0,8);
for(int i=0;i<9;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息