快速排序代码
2014-06-06 14:53
169 查看
#include <stdio.h> #include <stdlib.h> #include <time.h> void swap(int *a, int *b) { int t = *a; *a = *b; *b = t; } int partition(int a[], int nLeft, int nRight) { int v = a[nRight]; int i = nLeft - 1; int j = nRight; for (;;) { while (a[++i] < v); while (a[--j] > v) if(j == nLeft) break; if (i >= j) break; swap(&a[i], &a[j]); } swap(&a[i], &a[nRight]); return i; } void quick_sort(int a[], int nLeft, int nRight) { if (nRight <= nLeft) return; int i = partition(a, nLeft, nRight); quick_sort(a, nLeft, i - 1); quick_sort(a, i + 1, nRight); } int print_array(int a[], int nLen) { for(int i = 0; i < nLen; i++) { printf("%d ", a[i]); } printf("\n"); } int main(void) { srand((unsigned)time(NULL)); int a[10]; for (int i = 0; i < 10; i++) { a[i] = rand() % 10; } printf("排序前:\n"); print_array(a, 10); quick_sort(a, 0, 9); printf("排序后:\n"); print_array(a, 10); return 0; }
相关文章推荐
- 快速排序其他实现代码
- 冒泡排序、快速排序、选择排序、插入排序、shell排序C代码
- 快速排序经典代码
- 选择排序、快速排序代码
- JS实现随机化快速排序的实例代码
- 随机化快速排序代码
- 排序【快速排序代码示例】
- 快速排序Java代码
- C++三种排序,快速排序、选择排序、冒泡排序----简单代码
- 最近编写了快速冒泡排序代码,帮忙看看有没有什么破绽?
- python 快速排序代码
- 快速排序 C代码
- 快速排序代码
- [java]排序分类--及选择排序、插入排序、冒泡排序、快速排序的解释图和代码
- 快速排序的C语言代码实现
- JAVA排序算法实现代码-快速(Quick Sort)排序
- 快速排序代码实现_我来找茬
- 快速排序的代码
- 快速排序代码
- python快速排序代码实例