算法导论第7章快速排序
2015-02-03 21:10
441 查看
快速排序
快速排序
#include <stdint.h> #include <iostream> // QUICKSORT(A, p, r) // if p < r // q = PARTITION(A, p, r) // QUICKSORT(A, p, q - 1) // QUICKSORT(A, q + 1, r) // To sort an entire array, the initial call is QUICKSORT(A, 1, A.length) // PARTITION(A, p, r) // x = A[r] // i = p - 1 // for j = p to r - 1 // if A[j] <= x // i = i + 1 // exchange A[i + 1] with A[r] // exchange a[i + 1] with A[r] // return i + 1 void swap(int64_t* A, uint64_t i, uint64_t j) { int64_t tmp = A[i]; A[i] = A[j]; A[j] = tmp; } int64_t partition(int64_t* A, int64_t p, int64_t r) { int64_t x = A[r]; int64_t i = p; for (int64_t j = p; j < r; j++) { if (A[j] <= x) { swap(A, i, j); i++; } } swap(A, i, r); return i; } void quicksort(int64_t* A, int64_t p, int64_t r) { if (p < r) { int64_t q = partition(A, p, r); quicksort(A, p, q - 1); quicksort(A, q + 1, r); } } void print_array(int64_t* A, int64_t n) { std::cout << "print array" << std::endl; for (int64_t i = 0; i < n; i++) { std::cout << A[i] << " "; } std::cout << std::endl; } #include <stdio.h> #include "7.1_quicksort.h" int main() { int64_t array[] = { 2, 8, 7, 1, 3, 5, 6, 4 }; print_array(array, 8); quicksort(array, 0, 7); print_array(array, 8); getchar(); return 0; }
快速排序
相关文章推荐
- 算法导论学习笔记 第7章 快速排序
- 《算法导论》读书笔记之第7章 快速排序
- 《算法导论》 第7章 快速排序
- 《算法导论》第7章 快速排序 (四种变形)
- 《算法导论》第7章 快速排序 (四种变形)
- 算法导论 第7章 快速排序
- 《算法导论》笔记 第7章 7.1快速排序的描述
- 《算法导论》第7章 快速排序 (四种变形)
- 算法导论第7章快速排序答案
- 《算法导论》笔记 第7章 7.1快速排序的描述
- 《算法导论》第7章 快速排序 (四种变形)
- 算法导论 第7章 快速排序
- 算法导论 第7章 快速排序
- 《算法导论》读书笔记之第7章 快速排序
- 《算法导论》笔记 第7章 7.2快速排序的性能
- 算法导论 第7章 快速排序 学习总结
- 《算法导论》笔记 第7章 7.2快速排序的性能
- 算法导论学习笔记-第7章 快速排序
- 算法导论-第7章 - 快速排序
- 《算法导论》笔记 第7章 7.3快速排序的随机化版本