有人能帮忙解释一下快速排序吗?
/*8. (**)编写整型值数组排序程序(冒泡排序、选择排序、快速排序--升序)
int a[] = {3,-9,32,77,63,-24,14,0,21,45};
*/
// int a[] = {3,-9,32,77,63,-24,14,0,21,45};
/*
//冒泡排序:
for (int i = 0; i < sizeof(a)/sizeof(int); i++) {
for (int j = 0; j < sizeof(a)/sizeof(int) - i; j++) {
if (a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (int i = 0; i < sizeof(a)/sizeof(int); i++) {
printf("%d\t",a[i]);
}
*/
/*
//选择排序
for (int i = 0; i < sizeof(a)/sizeof(int); i++) {
int minindex = i;
for (int j = 0; j < sizeof(a)/sizeof(int)-i; j++) {
if (a[minindex] < a[j]) {
minindex = j;
}
if (minindex != i) {
int temp = a[minindex];
a[minindex] = a[i];
a[i] = temp;
}
}
}
for (int i = 0 ; i < sizeof(a)/sizeof(int) ; i++) {
printf("%d\t",a[i]);
}
*/
//快速排序 不会
请问一下 快速排序 的思想: