快速排序
来源:互联网 发布:大数据安全分析 编辑:程序博客网 时间:2024/05/18 01:58
c语言
//快速排序 从小到大 #include <stdio.h>int a[101];void quicksort(int left, int right){//left和right是一组数组里面最左边和最右边的下标 int temp,t,i,j; if(left > right) return ; temp = a[left];//temp是基准值就是拿来比较的数 i = left; j = right; while(i != j){ while(a[j] >= temp && i < j) j--;//从最左边开始找比基准数大的数 while(a[i] <= temp && i < j) i++;//从最右边开始找比基准数小的数 //注意的要点是要从右开始找起 if(i < j){ t = a[i]; a[i] = a[j]; a[j] = t; }//找到以后交换,直到i==j,最终让基准数归位 } a[left] = a[i]; a[i] = temp;//找到新的基准数后与原来的基准数交换 quicksort(left,i-1);//继续处理左边的 quicksort(i+1,right);//继续处理右边的 return ; }int main(){int i,n;scanf("%d", &n);for(i = 1;i <= n; i++){ scanf("%d",&a[i]);}quicksort(1,n);for(i = 1;i <= n; i++){ printf("%d ",a[i]);} return 0;}
c++
#include <iostream>using namespace std;int a[101];void quicksort(int left,int right){int i,j,temp,t;if(left > right) return;temp = a[left], i=left, j=right;while(i != j){while(a[j] >= temp && i < j) j--;while(a[i] <= temp && i < j) i++;if(i<j){t=a[i];a[i]=a[j];a[j]=t;} }a[left]=a[i];a[i]=temp;quicksort(left,i-1);quicksort(i+1,right); return; }int main(){int i,n; cin>>n;for(i = 1;i <= n; i++){ cin>>a[i];}quicksort(1,n);for(i = 1;i <= n; i++){ cout<<a[i]<<" ";}cout<<endl; return 0;}
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- A - Inversion 归并排序求逆序数
- C 语言字符数组的定义与初始化
- 配置php使其支持段标记<? ?>
- 关于ubuntu16.04拨号上网以及无线驱动安装方法
- 跑马灯
- 快速排序
- 浅谈Slick(2)- Slick101:第一个动手尝试的项目
- 多次调用定时器
- 【大学专业第一讲】工科王牌专业——计算机
- ReactNative-Redux实际应用
- 稀疏矩阵的快速转置
- 大数据处理实例——Amazon商品评分&评论(一)
- AngularJS学习之 ng-route模块
- XHTML笔记