A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© tutucoo 中级黑马   /  2015-6-10 18:27  /  689 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

算法中最简单的一种,必须要掌握的〜〜

#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;
}

1 个回复

倒序浏览
围观学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马