C++quickSort
void QuickSort1(int *s,int left,int right)
{
int i,j,t,pivot;
if(left>right)
return;
if(left<right)
{
pivot = s[left]; //基准数
i=left;
j=right;
while(i!=j)
{
while(i<j &&s[j]>=pivot) j--; //从右向左找第一个比基准数小的数
while(i<j &&s[i]<=pivot) i++; //从左向右找第一个比基准数大的数
if(i<j) //交换两数
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
s[left] = s[i]; //基准数归位
s[i] = pivot;
QuickSort1(s,left,i-1);
QuickSort1(s,i+1,right);
}
}
void QuickSort2(int *s,int left,int right)
{
int i,j,pivot;
if(left>right)
return;
if(left<right)
{
pivot = s[left]; //基准数
i=left;
j=right;
while(i!=j)
{
while(i<j &&s[j]>=pivot) j--; //从右向左找第一个比基准数小的数
if(i<j)
{
s[i]=s[j];
i++;
}
while(i<j &&s[i]<=pivot) i++; //从左向右找第一个比基准数大的数
if(i<j)
{
s[j]=s[i];
j--;
}
}
s[i] = pivot; //基准数归位
QuickSort2(s,left,i-1);
QuickSort2(s,i+1,right);
}
}
int main()
{
int a[10] = {1,6,7,0,2,17,13,35,19,23};
//QuickSort1(a,0,9);
QuickSort2(a,0,9);
int i=0;
for(;i<10;i++)
printf("%d ",a[i]);
return 0;
}
最新文章
- TFS 2015 Update 2功能探索
- Socket状态变迁图
- oracle 监测数据库是否存在指定字段
- *IntelliJ idea创建创建Maven管理的Java Web项目
- 安装spark1.3.1单机环境
- IT痴汉的工作现状13-吓唬电话
- 蜗牛—Hibernate之初识配置
- 3377: [Usaco2004 Open]The Cow Lineup 奶牛序列
- UICollectionView左对齐流水布局、右对齐流水布局
- 【JSP 标签】选择判断c:choose
- 模块(一)——re模块
- scala(二) Future执行逻辑解读
- Android开发学习之路--Notification之初体验
- brew 安装指定版本命令行工具 tmux 多版本实现
- 龙光集团地产跃居“中国房地产500强TOP28”
- C#如何生成缩略图、水印
- VsCode语言设置为中文
- scrapy爬取网址,进而爬取详情页问题
- 订单状态 Mark
- [py]字符串/列表