快速排序,编译时没有报错!
#include<iostream>
using namespace std;
void paixu(int a[], int left, int right);
int zheban(int a[], int l, int r);
int main(){
int a[6] = { 5, 8, 3, 7, 6, 2 };
paixu(a, 0, 5);
for (int i = 0; i <= 5; i++)
cout << a[i];
return 0;
}
void paixu(int a[], int left, int right)
{
int mid;
if (left < right)
mid = zheban(a, left, right);
paixu(a, left, mid - 1);
paixu(a, mid + 1, right);
}
int zheban(int a[], int l, int r)
{
int i = l; int j = r;
int x = a[i];
while (i < j)
{
while ((a[j] >= x) && (i < j))
{
j--;
}
a[i] = a[j];
while ((a[i] <= x) && (i<j))
{
i++;
}
a[j] = a[i];
}
a[j] = x;
return j;
}
运行后出现这

然后我只能终止:

这咋解决?谢谢大家
#include<iostream>
using namespace std;
void paixu(int a[], int left, int right);
int zheban(int a[], int l, int r);
int main(){
int a[6] = { 5, 8, 3, 7, 6, 2 };
paixu(a, 0, 5);
for (int i = 0; i <= 5; i++)
cout << a[i];
return 0;
}
void paixu(int a[], int left, int right)
{
int mid;
if (left < right)
mid = zheban(a, left, right);
paixu(a, left, mid - 1);
paixu(a, mid + 1, right);
}
int zheban(int a[], int l, int r)
{
int i = l; int j = r;
int x = a[i];
while (i < j)
{
while ((a[j] >= x) && (i < j))
{
j--;
}
a[i] = a[j];
while ((a[i] <= x) && (i<j))
{
i++;
}
a[j] = a[i];
}
a[j] = x;
return j;
}
运行后出现这

然后我只能终止:

这咋解决?谢谢大家