求大神帮我看一看这个快速排序C++程序拉你出错了,谢谢!vs没报错,但一运行就中断,

作者&投稿:语英 (若有异议请与网页底部的电邮联系)
求c++大佬看看运行程序为什么不能排序~

for(i=SIZE-1;i>=1;i--);多了个;

刚才试验了一下,你这个程序能输出答案,应该注意一下传的参数:
public static void main(String[] args) {int[] test = {4, 5, 9, 7, 6, 5, 8, 1, 2};//这里传入的应该是最大的下标test.length-1而不是test.lengthquickSort(0, test.length - 1, test);for(int i : test){System.out.println(i);}}

兰州 你的n没有初始化啊...你咋么知道new的大小?! 一开始出错就是这个问题 还有问题请继续

兰州 基本上十把你的代码QuickSort函数全改了... 实测 通过... 有注释 望采纳....
.
void QuickSort(int a[],int low,int high)
//对元素a[low]~a[high]进行快排
{
int i=low,j=high;
int temp =a[low];
while(i<j)//循环控制条件
{
while(i<j && temp<=a[j]) j--;//在数组右端扫描
if(i<j)
{
a[i]=a[j];
i++;
}
while(i<j && a[i]<temp ) i++;//在素组左端扫描
if(i<j)
{
a[j]=a[i];
j--;
}
}
a[i]=temp;
if(low<i) QuickSort(a,low,i-1);
if(i<high) QuickSort(a,j+1,high);
}
int main()
{
int m,n=100,o; //直接复制n比较大的一个数- - 怕你直接来个99...
int* S=new int[n];
cout<<"Please input the Sequence length:\n";
cin>>n;
cout<<"Please input the number sequence:\n";
for(m=0;m<n;m++) //一般数组下标是从0开始的 兰州下次要注意 你的代码数组会越界的
{
cin>> o;
S[m]=o; //其实我觉得o变量完全没有必要 直接cin>>S[m]就行了
}
QuickSort(S,0,n-1); //快排
for(m=0;m<n;m++) //输出
{
cout<<S[m]<<" " ;
}
cout<<endl;
}

#include<iostream>using namespace std;
int Partition(int* A,int p,int r)
{
int x,i,j;
x=A[p];
i=p;
for(j=p+1;j<=r;j++)
{
if(A[j]<=x) {
i=i+1;
swap (A[i],A[j]);
}
}
swap (A[p],A[i]);
return i;
}
void Quick_sort(int* A,int p,int r)
{
int q;
q=Partition(A,p,r);

if(p<q-1) //问题 Quick_sort(A,p,q-1);
if(q+1<r)
Quick_sort(A,q+1,r);

}void swap(int*x,int*y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
int main()
{
int m,n,o;
int* S=new int[n];
cout<<"Please input the Sequence length:\n";
cin>>n;
cout<<"Please input the number sequence:\n";
for(m=1;m<=n;m++)
{
cin>> o;
S[m]=o;
}
Quick_sort(S,m,n);
for(m=1;m<=n;m++)
{
cout<<S[m];
}
cout<<endl;
}


大神帮忙看一看我的C语言写的出了什么问题?
看你的代码片段,代码功能应该是判断用户输入的公历日期是否合法.代码中,有多处语法错误(如:if(month == 1,3,5,7,8,10,12)),对日期合法的逻辑判断混乱且不全面,需要更正思路.语法更正:判断一个变量(a)可能为多个值时,if语句格式是 if((a == a1)||(a == a2)||(a == a3))而不是if...

求大神帮我看一看这个软件的作用是什么
就是帮你刷QB的软件,一般都是有毒的哦。

请大神们帮忙看看我的衣服是否为正品,谢谢!
我们来谈谈A类:标有这样标示的衣服一般适用于儿童,可以由2岁以下的儿童穿着;让我们来谈谈接下来的这个类别:这意味着仅次于A类衣服,可以直接与皮肤接触,而不会造成伤害,而一般的内衣都有标记;还有一类就是C类:此标记表示衣服不能直接接触皮肤,如各种外套等,均标有C.因此,每个人都应该看一看。

大神们帮看一看,这是在直播间花88元买的岫玉。是真的吗?
假的,就是快普通的石头,没什么特别的,好货不便宜,便宜没好货

麻烦各位大神帮我看一看这翡翠镯子上是裂纹吗?手扣不到。
玉是一种神奇的东西,如果和主人投缘的话,裂纹是可以自我修复的

大神帮忙看一看这两个新百伦是不是正品(图标中间是磨损)谢谢啦_百度...
现在网上购物会有很多A货,看图标没有多大用。这个鞋国内正品就要到专卖店才是真的,其他都是福建产品

朋友们这块是什么石头,有哪位大神可以劳驾帮我看一看?
方解石 碳酸钙矿物,俗称马牙石。方解石是一种碳酸钙矿物,天然碳酸钙中最常见的就是它。[1]因此,方解石是一种分布很广的矿物。方解石的晶体形状多种多样,它们的集合体可以是一簇簇的晶体,也可以是粒状、块状、纤维状、钟乳状、土状等等。敲击方解石可以得到很多方形碎块,故名方解石。[1]

跪求大神帮看下这个镯子怎么样?花10000元,谢谢!
此镯所用材质为昆仑玉,又称为青海玉,产地为青海。自和田玉概念重新定义以后。昆仑玉与阿富汗玉、俄料、韩料等玉种共同划入了和田玉范畴,即使出具鉴定证书,也按照和田玉出具。此件手镯玉质较细腻,色泽尚可。从图片上看也具备一定的润度,属昆仑玉当中的中档材质。不知道此镯购买时间,若在一年前,...

请大神瞧一瞧~看一看~帮我翻译这篇文章
有些人认为成功是只为那些有天赋和那些成长在有良好教育的家庭的人,还有人人认为成功主要归结为运气。我不会说幸运,人才,和情况不发挥作用是因为他们不做为。有些人生在好的的家庭,也有的人智慧超凡,而这仅仅是生活的现实。然而,在生活中获得成功,首先需要设定一个目标,然后逐渐让它更实用。

各位大神,玄凤如何区分公母?帮忙看一看,谢谢
这鹦鹉太漂亮啦!一公一母太可以了,西门吹雪,主要是头上那个冠,高的漂亮的就是公的,

南川区19450275771: 快速排序的C++代码 -
紫宗马蔺: #includeusing namespace std; void QuickSort(int *pData,int left,int right) { int i(left),j(right),middle(0),iTemp(0); //middle=pData[(left+right)/2];求中间值 middle=pData[(rand()%(right-left+1))+left]; //生成大于等于left小于等于right的随机数 do{ ...

南川区19450275771: 快速排序c++代码 -
紫宗马蔺: 随机生成N个整数显示,经过快速排序后输出排序后的结果.程序代码如下所示,仅供参考:(已通过编译运行,正确无误!)# include "stdio.h"# include "time.h"# include "stdlib.h"# define N 10 int partition(int a[],int low,int high){//快速...

南川区19450275771: 快速排序的C++代码
紫宗马蔺:#include<iostream> using namespace std; void QuickSort(int *pData,int left,int right) { int i(left),j(right),middle(0),iTemp(0); //middle=pData[(left+right)/2];求中间值 middle=pData[(rand()%(right-left+1))+left]; //生成大于等于left小于等于right的随机数...

南川区19450275771: 求大神啊!!使用api实现 快速排序算法最好用c++ -
紫宗马蔺: C/C++ 中的快速排序 API 就是 qsort.#include using namespace std; int cmp (const void* a, const void* b) { int i1 = *((int*)a); int i2 = *((int*)b); return i1 - i2; } int main() { int n = 16; int arr[] = {3, 12, 1, 999, 56, 77, 32, 4, 99, 12, 67, 65, 43, 22, 2000, ...

南川区19450275771: 用快速排序法(C++)排序 从小到大排,最好能讲一下原理,谢谢啦 -
紫宗马蔺: #include using namespace std;void swap(int& a,int& b) {int c;c=a;a=b;b=c; }void sort(int* a, int n)//快排函数,从小到大 {if(n<=1) return;if(n==2){if(a[1] swap(a[1],a[0]);return;}swap(a[0],a[n/2]);int t = *a;int* L=a+1;//从左向右走,遇到...

南川区19450275771: c++快速排序法 -
紫宗马蔺: int qpass(RecordYype r[],int left,int right)/*对记录数组r中的r[left]至r[right]部分进行一趟排序,并得到枢轴的位置,使得排序后的结果满足期之后(前)的记录的关键字均不小于(大于)枢轴记录*/ { x=r[left]; low=left; high=right; while(low<high) { ...

南川区19450275771: C++快速排序难题,麻烦大佬看看!!! -
紫宗马蔺: 一趟快速排序的过程是:以数列中的某个数作为标杆,先从左往右找出一个比它大的数,再从右往左找出一个比它小的数,交换这两个数的位置.重复上述过程,直到从左往右的指针和从右往左的指针相遇于某个位置.将作为标杆的数放在这个位置,此时,这个数左边的数列中的数全部小于它,而右边的数列中的数全部大于它.

南川区19450275771: c语言c++,大家帮帮看下我这个快速排序哪出错啊 我实在找不出了 -
紫宗马蔺: while(i<j) { while(i<j&&a[j]>=flag) j--; a[i]=a[j]; while(i<j&&a[i]<=flag) i++; a[j]=a[i]; }这段代码肯定有错...我觉得就有可能会出现死循环的情况..存在数据让你的程序死在这个循环中.... 而且也不知道a[i]=a[j];和a[j]=a[i];有什么作用??估计也是有错的部分..希望你自己在好好想想..这段肯定是有错的..手头没有编译环境,就不帮你调试了..

南川区19450275771: 求能用C++编一个快速排序的程序???
紫宗马蔺: // 以下代码在VC2005下测试通过 #include <iostream> #include <ctime> using namespace std; // 划分 int Partition(int A[], int p, int r) { int x = A[p]; int i = p + 1; int j = r - 1; while(i < j) { while(A[i] < x) ++i; while(A[j] > x) --j; if(i < j) swap(A[i++], A[j--]); } if(...

南川区19450275771: 求快速排序法的C++代码 -
紫宗马蔺: void QuickSort(int *pData, int left, int right) { int i, j; int middle, iTemp; i = left; j = right; middle = pData[(left + right) / 2]; //求中间值 do { while ((pData[i]i++; while ((pData[j] > middle) && (j > left)) //从右扫描小于中值的数 j--; if (i{ //交换 iTemp = ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网