10、C程序 数组排序之[快速排序法]
来源:互联网 发布:控制鼠标的软件 编辑:程序博客网 时间:2024/05/18 15:56
#include <stdio.h>// 交换函数void swap (int a[], int i, int j){int tmp = a[i];a[i] = a[j];a[j] = tmp;}// 打印数组void printA (int *a, int len){int i;for (i = 0; i < len; i++){printf ("%4d", a[i]);}printf ("\n");}// 分区操作,返回基准值的下标int partition(int *a, int left, int right){int pivot = a[right];int index = left; // 如果找到一个比基准值小的元素,与下标为index的元素交换int i;for (i = left; i < right; i++){if (a[i] < pivot){swap (a, i, index);index++;}}swap (a, index, right);return index; // 基准值所在位置下标}void qSort(int *a, int left, int right){if (left < right){int pivot = partition(a, left, right); // 进行分区操作,找基准值下标qSort (a, left, pivot-1); // 对左边部分进行快速排序qSort (a, pivot+1, right); // 对右边部分进行快速排序}}int main(){int a[10] = {9,6,8,0,3,1,2,4,7,5};int len = sizeof(a) / sizeof(a[0]);qSort (a, 0, len-1);printA (a, len);return 0;}
阅读全文
0 0
- 10、C程序 数组排序之[快速排序法]
- 1、C程序 数组排序之[冒泡排序法]
- 4、C程序 数组排序之[选择排序法]
- 5、C程序 数组排序之[插入排序法]
- C排序之快速排序法
- 6、C程序 数组排序之[二分插入排序法](插入排序法改良版)
- 3、C程序 数组排序之[鸡尾酒排序]
- 9、C程序 数组排序之[归并排序]
- 2、C程序 数组排序之[冒泡排序法](应用函数让程序简洁一些)
- C语言数组--快速排序
- c语言 程序 快速排序
- 数组集合之快速排序
- 快速排序之分割数组
- 快速排序法程序
- 数组排序-快速排序
- c--经典算法之排序---快速排序
- C语言排序之快速排序篇
- C语言快速排序之sort排序
- 强化练习6:判断一字符串是否为回文,是返回1,不是返回0,出错返回-1
- Java正则表达式
- ActiveReports报表设计器
- 654. Maximum Binary Tree
- uva11235 frequent values(Sparse Table)
- 10、C程序 数组排序之[快速排序法]
- 24之前24之后的使用安卓系统相机的2个总结
- 二、创建第一个图表
- 正则表达式的使用
- js中canvas操作
- ZOJ-3804---YY's Minions (模拟)
- 骑记APP——IOS版登录流程体验报告
- 青蛙的约会(扩展欧几里德)
- 编程练习2——05