vc ++解决思路
vc ++
#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;
void swep(int a[],int left, int right)
{
int tem = a[left];
a[left] = a[right];
a[right] = tem;
}
int SelectPivot(int a[], int p, int r)
{
return (p + r) / 2;
}
int partion(int a[], int p, int r)
{
//选中点
int Pivot = SelectPivot(a, p, r);
while (p < r)
{
while (p<r && a[p]<a[Pivot])
{
p++;
}
swep(a,p,Pivot);
while (p < r && a[r] >= a[Pivot])
{
r--;
}
swep(a,Pivot,r);
}
return Pivot;
}
void QuickSort(int a[], int p, int r)
{
if (p < r)
{
int q = partion(a, p, r);
QuickSort(a, p, q - 1);
QuickSort(a, q + 1, r);
}
}
int main(void)
{
int array[] = { 0, -2, 11, -4, 13, -5, 14, -43 };
QuickSort(array, 0, 7);
for (int i = 0; i < 7; i++)
cout << array << " ";
cout << endl;
getchar();
return 0;
}
为什么在win32 控制台上输出的结果为如图的字符串,而且每次启动调试结果都不一样

------解决思路----------------------
array是数组地址;
每次调试可能相同也可能不同,与操作系统有关系
#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;
void swep(int a[],int left, int right)
{
int tem = a[left];
a[left] = a[right];
a[right] = tem;
}
int SelectPivot(int a[], int p, int r)
{
return (p + r) / 2;
}
int partion(int a[], int p, int r)
{
//选中点
int Pivot = SelectPivot(a, p, r);
while (p < r)
{
while (p<r && a[p]<a[Pivot])
{
p++;
}
swep(a,p,Pivot);
while (p < r && a[r] >= a[Pivot])
{
r--;
}
swep(a,Pivot,r);
}
return Pivot;
}
void QuickSort(int a[], int p, int r)
{
if (p < r)
{
int q = partion(a, p, r);
QuickSort(a, p, q - 1);
QuickSort(a, q + 1, r);
}
}
int main(void)
{
int array[] = { 0, -2, 11, -4, 13, -5, 14, -43 };
QuickSort(array, 0, 7);
for (int i = 0; i < 7; i++)
cout << array << " ";
cout << endl;
getchar();
return 0;
}
为什么在win32 控制台上输出的结果为如图的字符串,而且每次启动调试结果都不一样
------解决思路----------------------
array是数组地址;
每次调试可能相同也可能不同,与操作系统有关系