Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * QuickSort.c
- *
- * Created on: Nov 20, 2014
- * Author: steven
- */
- #include <float.h>
- #include <limits.h>
- #include <math.h>
- #include <stdbool.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- void swap(int *int1, int *int2){
- int temp = *int1;
- *int1 = *int2;
- *int2 = temp;
- }
- void quickSort(int* array, int l, int r){
- int s;
- if (l < r){
- s = partition(array, l, r);
- quickSort(array, l, s - 1);
- quickSort(array, s + 1, r);
- }
- }
- int partition(int* array, int l, int r){
- int p = array[l];
- int i = l;
- int j = r + 1;
- while (i < j){
- do {
- ++i;
- } while (array[i] <= p && i <= r);
- do {
- --j;
- } while (array[j] > p);
- swap(&array[i], &array[j]);
- }
- swap(&array[i], &array[j]);
- swap(&array[l], &array[j]);
- return j;
- }
- int main() {
- int intSize = 0;
- int* intData = NULL;
- //int intMin = 0;
- FILE* fileHandle = fopen("Data1.txt", "r");
- //Scans document for first int, assign to intSize
- fscanf(fileHandle, "%d", &intSize);
- intData = (int*) (malloc(sizeof(int) * intSize));
- // Add to array
- for (int intFor1 = 0; intFor1 < intSize; intFor1 += 1) {
- fscanf(fileHandle, "%d", &intData[intFor1]);
- }
- // Sort!
- quickSort(intData, 0, intSize - 1);
- // Print!
- for (int i = 0; i < intSize; i += 1){
- printf("%d ", intData[i]);
- }
- printf("\n");
- fclose(fileHandle);
- printf("\n");
- free(intData);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement