【算法】【排序】【交换类】快速排序QuickSort
2024-09-01 03:38:01
#include<stdio.h> //快速排序 int main(){
int a[]={,,,,,,,,};
int* b=a-+sizeof(a)/; //基准指针
int* i=a-; //慢指针
int* j=a; //快指针
int QS(int* tb,int* ti,int* tj);
QS(b,i,j); for(int k=;k<sizeof(a)/;k++){
printf("%d ",a[k]);
}
} //QuickSort
int QS(int* tb,int* ti,int* tj){
//如果数组空或只有一个数不用排序
if(tb<=tj){
return ;
}
void swap(int *ti2,int* tj2);
int* b=tb;
int* i=ti;
int* j=tj;
int* t=ti;
while(true){
if(*j<*b){
i++;
swap(i,j);
j++;
}else{
j++;
}
if(j==b){
i++;
swap(i,j);
break;
}
}
//判断左区是否还可以运算
if(i>t+){
QS(i-,t,t+);
}
//判断右区是否还可以运算
if(b>i+){
QS(b,i,i+);
}
} //交换两个指针的数据
void swap(int *ti2,int* tj2){
int t=*ti2;
*ti2=*tj2;
*tj2=t;
}
最新文章
- AngularJS入门心得4——漫谈指令scope
- shell脚本(管理守护进程)
- highchart去掉highcharts.com及导出
- unity3d插件Daikon Forge GUI 中文教程3-基础控件Button和Sprite的使用
- gerrit: Error in POST /accounts/self/preferences
- JAVA-封装
- Redis安装及配置(Linux)
- 运行yum报错Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
- Android 引用library project
- ios 文字图标
- Android自定义控件系列(一)—Button七十二变
- html 5 video
- FTP服务器 Serv-u 环境搭建
- Go笔记-垃圾回收集和SetFinalizer
- 全面认识openstack:OpenStack架构详解
- Eclipse环境搭建并且运行wordcount程序
- Python遇到问题总结
- noj电子老鼠走迷宫(深搜dfs)超时错误
- 浅析MySQL中concat以及group_concat的使用
- Java正则表达式API详解
热门文章
- linux 多主机间快速跳转脚本
- .NET分布式框架 | Orleans 知多少
- JAVA写入大文件DEMO
- Larave使用composer安装无反应,提示“Changed current directory to C:/Users/Administrator/AppData/Roaming/Composer”
- scala刷LeetCode--21 合并两个有序链表
- SQL Server 函数的定义及使用
- Linux系统下word转pdf,xls转pdf,ppt转pdf
- fastdfs java client error
- re模块:模式匹配与正则表达式
- go 格式化 int,位数不够0补齐