算法导论-快速排序-C语言
来源:互联网 发布:安卓处理json实体类 编辑:程序博客网 时间:2024/05/16 14:37
#include <stdio.h>#include <stdlib.h>#define MAX_INT 655354#define NUM 16void exchange(int array[],int a, int b);void printArray(int array[], int length);void quickSort(int array[],int p,int r);int partition(int array[],int p,int r);int main(){ int array[NUM] = {23,12,3,4,2,3,234,5655,34,123,445,44,3,4,56,78}; int i ; quickSort(array,0,NUM - 1); printArray(array,NUM); return 0;}void quickSort(int array[],int low,int high){ int q; if(low < high) { q = partition(array,low,high); quickSort(array,low,q - 1); quickSort(array,q + 1,high); }}int partition(int array[],int low,int high){ int i = low; int j = high; int key = array[low]; while(i < j) { while(i < j && array[j] >= key) { --j; } array[i] = array[j]; while(i < j && array[i] <= key) { ++i; } array[j] = array[i]; } array[i] = key; return i;}
// Another partion method
/*int partion(int array[], int p, int r){ int key = array[r]; int i = p - 1; int j; for(j = p; j < r; ++j) { if(array[j] <= key) { ++i; exchange(array,i,j); } } exchange(array,i + 1,r); return i + 1;}*/void printArray(int array[], int length){ int i; for(i = 0; i < length; ++i ) { printf("%d ",array[i]); } printf("\n");}
0 0
- 算法导论 之 快速排序[C语言]
- 算法导论C语言实现: 快速排序
- 算法导论-快速排序-C语言
- 算法导论 - 快速排序的 C 语言实现
- 算法导论中的快速排序C源码~
- 算法导论 之 插入排序[C语言]
- 算法导论 之 冒泡排序[C语言]
- 算法导论 之 归并排序[C语言]
- 算法导论 之 堆排序[C语言]
- 算法导论 之 希尔排序[C语言]
- 堆排序C语言实现 算法导论
- 算法导论C语言实现: 堆排序
- 算法导论C语言实现: 计数排序
- 【算法导论】归并排序,C语言实现
- 算法导论 堆排序 C语言实现
- 算法导论-堆排序-C语言
- 算法导论-计数排序-C语言
- 算法导论-快速排序
- scala学习笔记5 (隐式转化/参数/类)
- live writer测试日志
- MySql使用Tips
- POJ-2976
- android - 标题栏进度条
- 算法导论-快速排序-C语言
- Eclipse导入外来工程出错处理
- Python sqlite3库使用
- 基于粒子滤波的目标跟踪基本算法(Matlab)
- 【经典案例】贪吃蛇 AI 的实现 snake AI
- Leetcode 贪心 Longest Consecutive Sequence
- ios-使用标签导航模式
- UML之用例图
- 可伸缩系统的架构经验