快速排序算法C++实现
来源:互联网 发布:兼职 知乎 编辑:程序博客网 时间:2024/06/15 17:13
今天花点时间看了一下快速排序的原理,写了一下程序,现把程序粘贴如下:
#include<iostream>
using namespace std;
int main()
{
int a[8]={49,38,65,97,76,13,27,49};
int low=0;
int high=7;
for(int i=0;i<high+1;i++)
cout<<a[i]<<" ";
cout<<endl;
void qs(int v[],int ,int );
qs(a,low,high);
for(int i=0;i<high+1;i++)
cout<<a[i]<<" ";
cout<<endl;
getchar();
return 0;
}
void qs(int v[],int left,int right)
{
int pivot=v[left];
int i=left;
int j=right;
while(i<j)
{
while(i<j && v[j]>=pivot) j--;
v[i]=v[j];
while(i<j && v[i]<=pivot) i++;
v[j]=v[i];
}
v[i]=pivot;
if(left<i-1)
qs(v,left,i-1);
if(i+1<right)
qs(v,i+1,right);
}
法二:
#include<iostream>
using namespace std;
int main()
{
int a[8]={49,38,65,97,76,13,27,49};
int low=0;
int high=7;
for(int i=0;i<high+1;i++)
cout<<a[i]<<" ";
cout<<endl;
int partion(int v[],int ,int );
void qs(int v[],int ,int );
qs(a,low,high);
for(int i=0;i<high+1;i++)
cout<<a[i]<<" ";
cout<<endl;
getchar();
return 0;
}
int partion(int v[],int left,int right)
{
int pivot=v[left];
int i=left;
int j=right;
while(i<j)
{
while(i<j && v[j]>=pivot) j--;
v[i]=v[j];
while(i<j && v[i]<=pivot) i++;
v[j]=v[i];
}
v[i]=pivot;
return (i);
}
void qs(int v[],int left,int right)
{
int i=partion(v,left,right);
if(left<i-1)
qs(v,left,i-1);
if(i+1<right)
qs(v,i+1,right);
}
- 快速排序算法(c#)实现
- 排序算法(C实现)--------- 快速排序
- QUicKSort 快速排序算法 c实现
- 快速排序C语言算法实现
- c语言实现快速排序算法
- 快速排序算法实现(C++)
- 纯c实现快速排序算法
- 快速排序算法(C & Java 实现)
- 快速排序算法的c语言实现
- 快速排序算法实现(C版)
- 快速排序算法的C/C++ 实现
- 快速排序算法的C语言实现
- 算法导论C语言实现: 快速排序
- 快速排序算法 C语言实现
- 直白快速排序算法,C语言实现
- C语言快速排序算法实现
- 【算法】C语言实现的快速排序
- C语言实现数组快速排序算法
- 以太网,IP,TCP,UDP数据包分析
- hadoop基础
- JAVA多线程编程陷阱总结一
- 反向投影 calcBackProject
- 聚类分析初探(一)引言
- 快速排序算法C++实现
- 字符串转换为整数
- DAO设计模式
- UI组件分离皮肤的自问自答
- Linux socket 数据包
- Spring第一个程序
- 重载new/delete运算符
- 选择排序算法思想及C语言实现
- ExtJs3学习资料分享