高手来看下,帮忙“快速排序”
时间:2011-12-03
来源:互联网
#include<iostream>
using namespace std;
void Quick_Sort(int A[],int low ,int high)
{
int temp,t=A[low];
int l=low,h=high;
if(l>=h) return ;
while(l<h)
{
while(A[l]<t)l++;
while(A[h]>=t)h--;
if(h>l)
{
temp=A[l];
A[l]=A[h];
A[h]=temp;
}
}
Quick_Sort(A,low,l-1);
Quick_Sort(A,l+1,high);
}
int main()
{
int a[5],i ;
for(i=0;i<5;i++)
cin>>a[i];
Quick_Sort(a,0,4);
for(i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
帮帮忙怎么会运行不出来呢!最好帮我改下,把代码给我,
还有,如果有其他的方法也可以发给我,谢谢大哥,大姐了。。。
using namespace std;
void Quick_Sort(int A[],int low ,int high)
{
int temp,t=A[low];
int l=low,h=high;
if(l>=h) return ;
while(l<h)
{
while(A[l]<t)l++;
while(A[h]>=t)h--;
if(h>l)
{
temp=A[l];
A[l]=A[h];
A[h]=temp;
}
}
Quick_Sort(A,low,l-1);
Quick_Sort(A,l+1,high);
}
int main()
{
int a[5],i ;
for(i=0;i<5;i++)
cin>>a[i];
Quick_Sort(a,0,4);
for(i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
帮帮忙怎么会运行不出来呢!最好帮我改下,把代码给我,
还有,如果有其他的方法也可以发给我,谢谢大哥,大姐了。。。
作者: yiliangloveyou1270 发布时间: 2011-12-03
while(l<h)
{
while(A[l]<t)l++;
while(A[h]>=t)h--;
if(h>l)
{
temp=A[l];
A[l]=A[h];
A[h]=temp;
}
}
改成while(l<h)
{
while(l<h&&A[h]>=t)
h--;
A[l++]=A[h];
while(l<h&&A[l]<=t)
l++;
A[h--]=A[l];
}
A[l]=t;
{
while(A[l]<t)l++;
while(A[h]>=t)h--;
if(h>l)
{
temp=A[l];
A[l]=A[h];
A[h]=temp;
}
}
改成while(l<h)
{
while(l<h&&A[h]>=t)
h--;
A[l++]=A[h];
while(l<h&&A[l]<=t)
l++;
A[h--]=A[l];
}
A[l]=t;
作者: lockie1988 发布时间: 2011-12-03
作者: zichen0422 发布时间: 2011-12-03
有时间的话 就自己学着调试嘛
作者: peng_weida 发布时间: 2011-12-03
C/C++ code
#include <iostream> using namespace std; template<typename T> void Swap(T& a, T& b) { T c = a; a = b; b = c; } template<typename T> void QuickSort(T* arr, int left, int right) { int l, r; T v; l = left; r = right; v = arr[(left + right)/2]; while(l <= r) { while (arr[l] < v) ++l; while (arr[r] > v) --r; if(l <= r) { Swap<T>(arr[l], arr[r]); ++l; --r; } } if(l == r) l++; if(left < r) QuickSort<T>(arr, left, r); if(l < right) QuickSort<T>(arr, l, right); } int main() { int i; int a[]={1,4,2,66,22,23,5,6,8,7,99,54}; QuickSort<int>(a, 0, 11); for(i=0;i<12;i++) cout<<a[i]<<endl; double b[]={5.1,4.5,2.2,66.5,22.6,23,5,6,18.1,7,99,54}; QuickSort<double>(b, 0, 11); for(i=0;i<12;i++) cout<<b[i]<<endl; return 0; }
作者: icechenbing 发布时间: 2011-12-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28