C++快速排序函数不执行

我写了一个快速排序程序,但是程序最后执行完就一个控制台黑白界面,什么都没有,有哪位大神能帮我解决一下吗?晚生再次谢谢了。。。附图如下图片说明

修改两个地方:
①数组下标超了:
QuickSort(A, 0, size);
printarray(A, size);

改为:
QuickSort(A, 0, size-1);
printarray(A, size-1);

②条件判断有点问题:
int Partition(int array[], int left, int right)

{
int centre =array[left];
int i = left+1;
int j = right;

while (1)
{
while (array[i] < centre && i <= right)
i += 1;
while(array[j] > centre && j <= left)
j -= 1;
if (i >= j)

break;
else
myswap(array[i], array[j]);
}

myswap(array[left], array[j]);
return j;
}
改为:
int Partition(int array[], int left, int right)

{
int centre =array[left];
int i = left;
int j = right;

while (i != j)
{
while(array[j] >= centre && j > i)
j -= 1;
while (array[i] <= centre && i < j)
i += 1;

if (i < j)  
    myswap(array[i], array[j]);

}

myswap(array[left], array[i]);
return j;
}

附上程序//快速排序算法(分治法)
#include
using namespace std;

//交换两数组的值
void myswap(int &A, int &B)
{
int temp;
temp = A;
A = B;
B = temp;
}

//确定分区
int Partition(int array[], int left, int right)

{
int centre =array[left];
int i = left+1;
int j = right;

while (1) 
{
    while (array[i] < centre && i <= right)
        i += 1;
    while(array[j] > centre && j <= left)
        j -= 1;
    if (i >= j)  
        break;
    else
        myswap(array[i], array[j]);
}

myswap(array[left], array[j]);
return j;

}

//快速排序

void QuickSort(int array[], int left, int right)

{
if (left < right) {
int m = Partition(array, left, right);
QuickSort(array, left, m - 1);
QuickSort(array, m + 1, right);
}
}

//打印结果
void printarray(int array[], int n)

{
int i;
for( i = 0 ; i < n ; ++i )
cout << array[i] << " " ;
cout << "\n";
}

void main()

{

int A[] = {65, 2, 6, 1, 90, 78, 105, 67, 35, 23, 3, 88, -22};
int size = sizeof(A) / sizeof(int);

QuickSort(A, 0, size);
printarray(A, size);  

system("pause");

}