最好理解的快速排序 :实例解析输入数组,排序
来源:互联网 发布:c语言中long怎么用 编辑:程序博客网 时间:2024/05/08 15:47
1 #include<iostream> 2 using namespace std; 3 void quick_sort(int *num,int l,int r){ 4 int i=l,j=r,mid=num[(l+r)/2]; 5 while(i<=j){ 6 while(num[i]<mid) i++; 7 while(num[j]>mid) j--; 8 if(i<=j){ 9 int temp=num[j];10 num[j]=num[i];11 num[i]=temp;12 i++;13 j--;14 }15 } 16 if(i<r) quick_sort(num,l,i);17 if(j>l) quick_sort(num,j,r);18 }19 int main(){20 int n,num[100];21 cin>>n;22 if(n<=0) return 0;23 for(int i=0;i<n;i++)24 cin>>num[i];25 quick_sort(num,0,n);26 for(int i=0;i<n;i++) cout<<num[i]<<" ";27 return 0;28 }
最简单的快排,输入排序。原理:
1.找到一个参照元素,将数组分为比他小的左部分和比他大的右部分两个子数组(分的时候简单的左部分右部分交换)
2.开始递归,不断将子数组分为左部分和右部分,最终每部分只含有一个元素,此时数组已经有序
0 0
- 最好理解的快速排序 :实例解析输入数组,排序
- 快速排序的实例
- 快速排序的理解
- 快速排序的理解
- 快速排序的理解
- 快速排序的理解
- 快速排序我见过最好的讲解
- 史上最好记的快速排序
- Java初学者最好理解的排序
- 数组排序-快速排序
- 快速排序原理解析及实例应用
- 简单理解的快速排序
- 一个快速排序的理解
- 快速排序算法的理解
- 快速排序法的理解
- 快速排序算法的理解
- 数组的插入排序和快速排序
- 快速理解快速排序
- C语言中关于字符串的一些常用函数
- 数学上的一些小技巧韩信点兵的问题
- 递归小问题之汉诺塔
- poj中一些对我来说不错的东西(每天不同的加入,要保持)
- 数据帧,数据包,数据段
- 最好理解的快速排序 :实例解析输入数组,排序
- 最好懂得贪心算法+动态规划之数塔问题
- 新手讲排序:详细讲解快速排序
- 新手讲排序:希尔排序
- HDU 5919 Sequence II(主席树)
- 新手讲排序:归并排序
- 新手讲队列:编程实现队列的入队出队操作
- 新手讲栈:编程实现栈的入栈出栈操作
- The Battle of Guandu