数据结构——快速排序
来源:互联网 发布:股票佣金万3怎么算法 编辑:程序博客网 时间:2024/05/24 05:02
题目要求实现1000000内的数的快速排序。这里的方法用了多个数组,还有一种只用一个数组的方法。
#include <stdio.h>#include <stdlib.h>#define N 1000000int a[N];int a1[N];int a2[N];void random_array(int a[],int n){ int i; for(i=0;i<n;i++) a[i]=random()%n;}void print_array(int a[],int n){ int i; for(i=0;i<n;i++) printf("%d\n", a[i]);}void quick_sort(int a[],int left,int right){ if(left>=right)//递归终止条件 return; int i=left+1; int j=right; int k1=0,k2=0,k=0; int middle=a[left]; while(i<=j)//把数组里的数据放在midelle两边 { if(a[i]<middle) a1[k1++]=a[i++]; else a2[k2++]=a[i++]; if(a[j]<middle) a1[k1++]=a[j--]; else a2[k2++]=a[j--]; } for(i=left,k=0;k<k1;i++,k++) a[i]=a1[k]; a[i]=middle; for(i=left+k1+1,k=0;k<k2;i++,k++) a[i]=a2[k]; quick_sort(a,left,left+k1-1); quick_sort(a,left+k1+1,right);}void my_qsort(int a[],int n)//改变一下接口,使之符合题目要求{ quick_sort(a,0,n-1);}int main(){ random_array(a,N); //print_array(a,N); //printf("\n"); my_qsort(a,N); print_array(a,N);}
0 0
- 数据结构 — 快速排序
- 数据结构——快速排序
- 数据结构——快速排序
- 数据结构——快速排序
- 数据结构—快速排序模型
- 数据结构【排序算法】——快速排序
- 再看数据结构之——快速排序
- 数据结构学习12——快速排序
- 数据结构与算法——快速排序
- 数据结构——快速排序算法
- 数据结构与算法——快速排序
- 数据结构算法——快速排序
- 数据结构之——快速排序
- 数据结构之——快速排序
- java-数据结构——快速排序
- 数据结构与算法——快速排序
- 【数据结构】——排序算法——2.2、快速排序
- 【数据结构与算法】排序算法——快速排序
- 第十一周项目一 验证算法(1)层次遍历算法的验证
- BIOS/UEFI基础——UEFI网络框架之IP4
- 一起学Hibernate——总览
- SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)的区别
- 杂记
- 数据结构——快速排序
- WebService到底是什么?
- 贪心 + 二分
- 读《You Don't Know CSS(二)》 读书笔记
- OnlineJudge系统解析(二)
- 破解Google Gmail的https新思路
- 数组指针的基本应用与细节注意
- 数据存储——SharedPreferences存储
- 作品回顾