最好理解的快速排序 :实例解析输入数组,排序

 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.开始递归,不断将子数组分为左部分和右部分,最终每部分只含有一个元素,此时数组已经有序

时间: 2024-10-12 08:09:42

最好理解的快速排序 :实例解析输入数组,排序的相关文章

JavaWeb实现文件上传下载功能实例解析

转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件

JavaWeb实现文件上传下载功能实例解析 (好用)

转: 转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上

第7章 Android HAL实例解析

第7章 Android HAL实例解析 通过本章介绍Android的HAL知道HAL是为了一些硬件提供商提出的保护专利的驱动程序而产生的,是为了避开Linux的GPL束缚.HAL主要的存储目录有:1.libhardware_legany  2.libhardware:3.ril   4.msm7k.主要包含以下一些模块:Gps.Vibrator.Wifi.Copybit.Audio.Camera.Lights.Ril.Overlay等.大概了解了Android  HAL. 第1中方法 直接调用s

基于Android2.3.5系统:JNI与HAL实例解析[一]

*************************************************************************************************************************** 作者:EasyWave                                                                                                           时间:2015.

ASP连接sql server实例解析

1.首先确定自己的iis没有问题 2.其次确定自己sqlserver没有问题 然后在iis的文件夹wwwroot里,建立一个文件 名为testSqlServer.asp,编写代码例如以下就可以 <% 'ole db连接 set cnn1 = Server.CreateObject("ADODB.Connection") '连接串需要注意sqlserver的实例名,是否是默认,非默认必需要写出来 cnn1.Open "provider=sqloledb;data sour

深入浅出实例解析linux内核container_of宏

做一件事情首先应该知道它的目的是什么. container_of的目的:如何通过结构中的某个变量获取结构本身的指针. 总体思路:假想一下,你的结构体中有好几个成员,你如何通过里面的"任一成员"获取整个结构体的首地址呢.container_of的做法就是通过typeof定义一个与"任一成员"同类型的指针变量pvar_a(假设变量名就是pvar_a),并让指针变量pvar_a指向这个"任一成员",然后用 "pvar_a的地址" 减

jQuery CSS()方法改变CSS样式实例解析

转自:http://www.jbxue.com/article/24588.html 分享一个jQuery入门实例:使用CSS()方法改变现有的CSS样式表,css()方法在使用上具有多样性.其中有一种可接受两个输入参数:样式属性和样式值,两者之间用逗号分隔.比如要改变链接颜色,可以这样编写代码: $("#61dh a").css('color','#123456');//选择器‘$("#61dh a")'表示ID为‘#61dh'的元素下的所有链接.//.css(‘

exec函数族实例解析

fork()函数通过系统调用创建一个与原来进程(父进程)几乎完全相同的进程(子进程是父进程的副本,它将获得父进程数据空间.堆.栈等资源的副本.注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间.linux将复制父进程的地址空间内容给子进程,因此,子进程有了独立的地址空间.),也就是这两个进程做完全相同的事. 在fork后的子进程中使用exec函数族,可以装入和运行其它程序(子进程替换原有进程,和父进程做不同的事). fork创建一个新的进程就产生了一个新的PID,e

基于Android2.3.5系统:JNI与HAL实例解析[二]

*************************************************************************************************************************** 作者:EasyWave                                                                                                           时间:2015.