|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
大佬们为什么我这个排序运行没有错误但是运行结果是乱码,我自己没查出哪有问题来,请各位大佬请指教一下,谢谢
# include <stdio.h>
void quick_sort (int array[], int left, int right)
{
int i = left, j = right;
int temp;//交换时的临时变量
int pivot;//中间基准
pivot = array[(left + right) / 2];
while (i <= j)
{
//从左到右找到大于等于基准点的元素
while (array[i] < pivot)
{
++i;
}
//从右往左找到小于等于每个基准点的元素
while (array[j] > pivot)
{
--j;
}
//如果i<=j则互换
if (i <= j)
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
++i;
--j;
}
}
if (left < j)
{
quick_sort(array, left, j);
}
if (i < right)
{
quick_sort(array, i, right);
}
}
int main (void)
{
int array[] = {73, 108, 111, 118, 101, 70, 105, 115, 104, 67, 46, 99, 111, 109};
int i,length;
length = sizeof(array) / sizeof(array[0]);
quick_sort(array, 0, length-1);
printf ("排序后的结果是:");
for (i = 0;i < length; ++i)
{
printf ("%d",array[i]);
}
putchar('\n');
return 0 ;
} |
|