黑马程序员技术交流社区

标题: 今天回顾了一下快速排序法 [打印本页]

作者: tutucoo    时间: 2015-6-10 18:27
标题: 今天回顾了一下快速排序法
算法中最简单的一种,必须要掌握的〜〜

#include
#include
using namespace std;
int partition(int *Array, int i, int j)
{
int t = *(Array + 1);
while(i < j)
{
while(i < j && *(Array + j) >= t)
{
j--;
}
if(i < j)
{
*(Array + 1) = *(Array + j);
i++;
}
while(i < j && *(Array + i) <= t)
{
i++;
}
if(i < j)
{

*(Array + j) = *(Array + i);
j--;
}
}
*(Array + i) = t;
return i;


}




void QuickSort(int *Array, int low, int hight)
{
int mid;
if(low < high)
{
mid = Partition(Array, low, high);
QuickSort(Array, low, mid - 1);
QuickSort(Array, mid + 1, high);
}


}
int main()
{
int i, n;
int Array[255];
printf("请输入数据的个数\n");
scanf("%d", &n);
if(n <= 0 && n >= 255)
{
printf("数据不合理!\n");
exit(1);
}
printf("请依次输入待排序的数据:\n");
for(int i = 1; i <= n; ++i)
{
scanf("%d", (Array + i));
printf("\n待排序的数组是:\n");
for(int i = 1; i <= n; ++i)
{
prntf("%d", *(Array + i));
}
QuickSort(Array, 1, n);
printf("\n排序后的数组是:\n");
for(int j = 1; j <= n; ++j)
{
printf("%d ", *(Array + j));
}
printf("\n");

}
return 0;
}
作者: luguo    时间: 2015-6-11 11:00
围观学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2