快速排序
2015-07-07 02:22
148 查看
快速排序C语言实现
这里我实现了一个quick函数,它的类型为空,第一个参数为要排序的数组的首地址,第二个参数为该数组的长度。#include <stdio.h> #define N 10 int* p; void quick(int* arr, int length) { int i,j,a,temp; i = 0; j = length - 1; a = arr[0]; while(i != j) { //j move while(i != j && arr[j] >= a) { j--; } if(i == j) { break; } //i move do{ i++; }while(i != j && arr[i] < a); if(i == j) { break; } temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } temp = arr[0]; arr[0] = arr[i]; arr[i] = temp; printf("==>"); for (int i = 0; i < N; i++) { printf("%d ", p[i]); } printf("\n"); if(i > 1) { quick(&arr[0], i); } if((length - 1 - i) > 1) { quick(&arr[i+1], length - 1 - i); } } int main() { int array = {5,4,6,2,7,8,1,10,9,3}; p = array; for (int i = 0; i < N; i++) { printf("%d ", array[i]); } printf("\n"); quick(array, N); for (int i = 0; i < N; i++) { printf("%d ", array[i]); } printf("\n"); return 0; }
输出结果:
相关文章推荐
- iosGET同步、异步请求
- IO操作 第一篇 学习(转载)
- Matlab应用实例(7)—fgoalattain
- Add and Search Word - Data structure design
- xcode 自己常用到的快捷键
- 事件处理原理(IOS篇) by sixleaves
- C语言获取系统时间
- iOS验证邮箱, 手机号, 密码, 账户名 --- 正则表达式
- 《软件测试管理公开课》2015.8.7~8 深圳 2015.8.11~12 北京 2015.8.18~19上海,欢迎报名!
- SQLAlchemy使用笔记
- iOS上的http请求:get、post以及同步、异步
- 为什么子线程不能更新UI的完全解析!!
- Python 的一些高级特性
- Foundation框架(NSString、NSMutableString)
- Leetcode 之 Best Time to Buy and Sell StockI,II
- [.net 面向对象程序设计进阶] (8) 托管与非托管
- FP-Tree算法的实现
- DOS命令添加, 删除, 查询系统环境变量
- [LintCode] 带重复元素的排列
- 黑马程序员——C语言---数字九宫格游戏实战练习