#include <stdio.h>
void shell(int a[], int size) {
int dist = size/2;
int temp = 0;
for(dist; dist>0; dist/=2) {
int i = 0;
for(int i=dist; i<size; i+=dist) {
for(int j=i-dist; j>=0 && a[j] > a[j+dist]; j-=dist) {
temp = a[j];
a[j] = a[j+dist];
a[j+dist] = temp;
}
}
dist/=2;
}
}
void insert(int a[], int size) {
int temp;
for(int i=0; i<size; i++) {
for(int j=0; j<size-i; j++) {
if(a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
void quick(int a[], int lhs, int rhs) {
int key = a[lhs];
int left = lhs, right = rhs;
if(rhs < lhs)
return;
while(left < right) {
while(left < right && a[right] > key)
right--;
a[left] = a[right];
while(left < right && a[left] < key)
left++;
a[right] = a[left];
}
a[left]=key;
quick(a, lhs, left-1);
quick(a, left+1, rhs);
}
int main(int argc, char const *argv[])
{
int a[] = {9, 8, 7, 5, 4, 1, 3, 2, 0, 6};
int size = 10;
quick(a, 0, size);
for(int i=0; i<10; i++) {
printf("%d, ", a[i]);
}
return 0;
}