快速排序算法
来源:互联网 发布:数据库设计实例 编辑:程序博客网 时间:2024/06/10 00:44
#include <stdio.h> #include <stdlib.h>void swap(int *a, int *b){ int tmp; tmp = *a; *a = *b; *b = tmp;}int partition(int array[], int start, int end){ int index; int flag; int x = array[end]; flag = start - 1; for(index = start; index < end; index++) { if (array[index] < x) { flag++; if (flag != index) { swap(&array[flag], &array[index]); } } } flag++; swap(&array[flag], &array[end]); return flag;}int partition1(int array[], int begin, int end){ int i; int j; int p; p = array[begin]; i = begin + 1; j = end; while (i < j) { while ((i < j) && (array[j] > p)) j--; while ((i < j) && (array[i] < p)) i++; if (i < j) swap(&array[i], &array[j]); } if (array[i] < p) swap(&array[begin], &array[i]); return i;}void quick_sort(int array[], int start, int end){ int index; if (start >= end) return; index = partition1(array, start, end); quick_sort(array, start, index-1); quick_sort(array, index+1, end);}int main(int argc, char *argv[]){ int i; int a[] = {100, 45, 3, 5,78,23,9,2,0,57}; int len; len = sizeof(a)/sizeof(a[0]); quick_sort(a, 0, len - 1); for (i = 0; i < len; i++) printf("%d ", a[i]); printf("\n"); return 0;}
阅读全文
0 0
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法------快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法---快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法:快速排序
- 排序算法 快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 【排序算法】快速排序
- 排序算法--快速排序
- 排序算法:快速排序
- 12C 创建用户授予connect+resource 后不在级联给予UNLIMITED TABLESPACE权限
- Java8 集合的遍历
- nuxt 自定义全局方法、全局属性、全局变量解决方案
- PostgreSQL远程连接,发生致命错误:没有用于主机“…”,用户“…”,数据库“…”,SSL关闭的pg_hba.conf记录
- 汇编两数相加
- 快速排序算法
- 几个小例子告诉你, 一行Python代码能干哪些事
- 超级丑数-LintCode
- The VMware Authorization Service is not running
- CoordinatorLayout.Behavior
- lintcode--删除排序链表中的重复数字
- 一篇文章讲透CDN HTTPS安全加速基本概念、解决方案及优化实践
- 16秋计算机JAVA第三节课作业(钟永钜) 4~6题
- Java的Json解析包FastJson使用