博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构(快速排序)
阅读量:6835 次
发布时间:2019-06-26

本文共 840 字,大约阅读时间需要 2 分钟。

 

快速排序=挖坑填数+分治法

【举例】

66 13 51 76 81 26 57 69 23

23 13 51 57 26 66 81 69 76

 

【Pascal版】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure 
Qsort(l,r:
longint
);
var 
i,j,t:
longint
;
begin
    
i:=l;j:=r;t:=a[i];   
//在i处挖坑
    
while 
i<j 
do
    
begin
        
while 
(i<j)
and
(a[j]>=t) 
do 
dec(j);
        
if
(i<j) 
then 
begin 
a[i]:=a[j]; inc(i); 
end
;  
//挖j填i
        
while 
(i<j)
and
(a[i]<=t) 
do 
inc(i);
        
if
(i<j) 
then 
begin 
a[j]:=a[i]; dec(j); 
end
;  
//挖i填j
    
end
;
    
a[i]:=t;    
//填i
    
if 
l<i-
1 
then 
Qsort(l,i-
1
);
    
if 
r<j+
1 
then 
Qsort(i+
1
,r);
end
;

  

【C++版】

 

1
2
3
4
5
6
7
8
9
10
11
12
void 
Qsort(
int 
L,
int 
R){
    
int 
i=L,j=R,t=a[i];    
//在i处挖坑
    
while
(i<j){
        
while
(i<j && a[j]>=t)j--;
        
if
(i<j){a[i]=a[j]; i++; }  
//挖j填i
        
while
(i<j && a[i]<=t)i++;
        
if
(i<j){a[j]=a[i]; j--; }  
//挖i填j
    
}
    
a[i]=t;  
//填i
    
if
(l<i-1) Qsort(l,i-1);
    
if
(r<j+1) Qsort(i+1,r);
}

  

转载于:https://www.cnblogs.com/pixiuart/p/5976789.html

你可能感兴趣的文章
同步锁
查看>>
Chromium Embedded Framework (CEF)_3.2171.2069_v20170606_x86.tar.xz
查看>>
jsp页面代码的加载顺序
查看>>
常用伪元素及content属性值的使用
查看>>
统计学习方法 李航---第1章 统计学习方法概论
查看>>
[笔记].活用Quartus II内置模板,快速输入HDL代码、TimeQuset约束及tcl语句等
查看>>
【笔记】程序员的思维修炼4
查看>>
Scanner 的练习 。。。。依然不懂用法。。。苦恼
查看>>
使用div模拟出frameset效果
查看>>
linux理论知识点(用于考试)
查看>>
Eclipse 导入 Android studio Exception Ljava/lang/UnsatisfiedLinkEror
查看>>
Android Studio 打包签名发布New Key Store
查看>>
01-查看系统整体性能情况:sar
查看>>
privot函数使用
查看>>
Beginning Silverlight 4 in C#-Silverlight控件
查看>>
用户及场景分析
查看>>
Tool.js
查看>>
Java线程池 ExecutorService
查看>>
Windows Phone 8: Evolution of the Runtime and Application Compatibility
查看>>
NOIP 跳石头
查看>>