#include<stdio.h>
#include <stdlib.h>
void sort(int *a, int left, int right);
void main(){
int s[] = { 1, 5, 8, 9, 65, 8, 52, 8, 6, 9, 6, 83, 96, 9, 965, 140, 10 };
sort(s, 0, 16);
for (int i = 0; i < 17; i++){
printf("%d\n", s[i]);
}
system("pause");
}
void sort(int *a, int left, int right){
int *p, *q;
p = NULL; q = NULL;
p = &a[left], q = &a[right];
int tmp;
tmp = a[left];
int tmp2;
int mid;
if (p == q){
return;
}
while (p != q){
if (*p <= tmp){
p++;
}
else{
if (*q >= tmp){
q--;
}
else{
tmp2 = *p;
*p = *q;
*q = tmp2;
}
}
}
*p = tmp;
mid = (left + right) / 2;
sort(a, left, mid);
sort(a, mid + 1, right);
}
#include<stdio.h>
#include <stdlib.h>
void sort(int *a, int *left, int *right);
void main(){
int s[] = { 1, 1, 5, 0 };
int length = 4;
int *left;
left = &s[0];
int *right;
right = &s[length - 1];
sort(s, left, right);
for (int i = 0; i < length; i++){
printf("%d\n", s[i]);
}
system("pause");
}
void sort(int *a, int *left, int *right){
int *p, *q;
p = left, q = right;
int tmp;
tmp = *p;
int *mid;
if (p == q){
return;
}
while (p != q){
if (*q >= tmp){
q--;
}
else{
*p = *q;
printf("%d,a[]\n", a[0]);
p++;
}
if (*p <= tmp){
p++;
}
else{
*q = *p;
q--;
}
*p = tmp;
printf("%d tmp\n", tmp);
for (int i = 0; i < 4; i++){
printf("%d\n", a[i]);
}
printf("无线\n");
mid = p;
sort(a, left, mid);
sort(a, mid + 1, right);
}