快速排序(完整程序c语言实现)
来源:互联网 发布:淘宝抢火车票靠谱吗 编辑:程序博客网 时间:2024/06/05 19:58
键码序列(66,13,51,76,81,26,57,69,23)进行快速排序。
求第一趟划分后的结果。
关键码序列递增。
以第一个元素为划分基准。
【主要方法步骤】如下:
将两个指针i,j分别指向表的起始和最后的位置。
反复操作以下两步:
(1)j逐渐减小,并逐次比较j指向的元素和目标元素的大小,若p(j)
#include<stdio.h>#include<stdlib.h>void Q_sort(int a[],int num);void swap(int *a,int *b);static int m = 0,n = 0;int main(){ int k = 0; int a[9] = {3,6,5,9,7,1,8,2,4}; Q_sort(a,9); for(k = 0;k<9;k++) { printf("%d ",a[k]); } printf("\n比较次数为: %d\n交换次数为: %d\n",m,n); return 0;}void Q_sort(int a[],int num){ int key; int i = 0; int j = num - 1; key = a[0]; if(num > 1) { while(i!=j) { for(;i<j;j--) { m++; if(a[j]<key) { a[i] = a[j]; //swap(&a[i],&a[j]); n++; break; } } for(;i<j;i++) { m++; if(a[i]>key) { a[j] = a[i]; //swap(&a[i],&a[j]); n++; break; } } a[i] = key; } Q_sort(a,i); Q_sort(a+i+1,num-i-1); }}void swap(int *a,int *b){ int temp; temp = *a; *a = *b; *b = temp;}
0 0
- 快速排序(完整程序c语言实现)
- 二路归并排序算法实现-完整C语言程序
- c语言 程序 快速排序
- 快速排序(c语言实现)
- 快速排序(C语言实现)
- 快速排序算法(C语言实现)
- 快速排序 C语言实现
- 快速排序C语言实现
- c语言实现快速排序
- C语言实现快速排序
- 快速排序实现(C语言)
- 快速排序C语言实现
- C语言实现快速排序
- 快速排序C语言实现
- 快速排序C语言实现
- C语言实现快速排序
- C语言实现快速排序
- 快速排序c语言实现
- c和指针1~2章小结
- [unity]unity 2d draw call优化
- 图形引擎(二):初始化Direct3D
- solr Hello, World!
- 分布式JAVA应用中设计到的知识点-转自《分布式JAVA应用:基础与实践》
- 快速排序(完整程序c语言实现)
- 近似因子模型
- 推荐系统--方法总结
- POJ 3070 Fibonacci
- 原型对象存在的问题与解决问题
- TCP协议的三次握手与三次挥手
- 8086汇编语言 80386PC的内存地址空间大小
- 查询一个数是否在数组中?
- scikit-learn 交叉验证绘图及原理实践