快速排序(Quick Sort)

来源:互联网 发布:sql语句优化方法 编辑:程序博客网 时间:2024/06/01 07:55


1. 图示


2. 代码

void quickSort(int *a, int left, int right){if (a == 0 || left < 0 || right < 0 || left >= right){return;}int key = a[left];int i = left;int j = right;while (i < j){while (i < j && a[j] >= key){j--;}a[i] = a[j];while (i < j && a[i] <= key){i++;}a[j] = a[i];}a[i] = key;quickSort(a, left, i - 1);quickSort(a, i + 1, right);}void printArray(int *a, int size){if (a == 0 || size <= 0){return;}for (int i = 0; i < size; i++){printf("%d ", a[i]);}printf("\n");}int main(){int a[] = {2, 3, 4, 1};int size = sizeof(a) / sizeof(int);printf("before sort:");printArray(a, size);quickSort(a, 0, size - 1);printf("after sort:");printArray(a, size);}

0 1
原创粉丝点击