快排源码

来源:互联网 发布:企业qq与qq的端口号 编辑:程序博客网 时间:2024/05/16 10:22

快排源码

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>/*打印数组*/void MyPrint(int *arr, int len){for (int i = 0; i < len; i++){printf("%d\t", arr[i]);}printf("\n");}/*快排*/void QuickSort(int *arr, int start, int end){int i = start;int j = end;/*取基准数*/int level = arr[start];if (i < j){while (i < j){/*从右往左找比基准数大的*/while (i < j && arr[j] < level){j--;}if (i < j){arr[i] = arr[j];i++;}/*从左往右找比基准数小的*/while (i < j && arr[i] > level){i++;}if (i < j){arr[j] = arr[i];j--;}}/*i的位置就是基准数最合适的位置*/arr[i] = level;/*快速排序左半步部分*/QuickSort(arr, start, i - 1);/*快速排序右半部分*/QuickSort(arr, i + 1, end);}}/*数组生成*/int *RandomArr(int len){int *arr = (int *)malloc(sizeof(int)*len);for (int i = 0; i < len; i++){arr[i] = rand() % 10 + 60;}return arr;}int main(){srand((unsigned)time(NULL));int len = rand() % 5 + 6;int *arr = RandomArr(len);MyPrint(arr, len);QuickSort(arr, 0, len - 1);MyPrint(arr, len);free(arr);system("pause");return EXIT_SUCCESS;}


1 0
原创粉丝点击