Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void swap(int* x, int* y);
- void qsort(int A[], int left, int right);
- int partition(int A[], int left, int right);
- int main(int argc, char *argv[]){
- int A[8] = {7, 2, 1, 6, 8, 5, 3, 4};
- qsort(A,0,7);
- }
- void qsort(int A[], int left, int right){
- if (left>=right){
- return;
- }
- int p;
- p = partition(A, left, right);
- qsort(A, left, p-1);
- qsort(A, p+1, right);
- }
- int partition(int A[], int left, int right){
- int lm, rm;
- lm = left+1;
- rm = right;
- while(lm<=rm){
- while(A[lm] < A[left]){
- lm++;
- }
- while(A[rm] > A[left]){
- rm--;
- }
- if(lm<=rm){
- swap(&A[lm], &A[rm]);
- }
- }
- swap(&A[rm], &A[left]);
- return rm;
- }
- void swap(int* x, int* y){
- int temp;
- temp = *x;
- *x = *y;
- *y = temp;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement