第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

求指正!C語(yǔ)言實(shí)現(xiàn)快速排序算法

求指正!C語(yǔ)言實(shí)現(xiàn)快速排序算法

C語(yǔ)言實(shí)現(xiàn)快速排序算法,代碼出錯(cuò)了,看了很久不懂錯(cuò)在哪里,求解,謝謝各位胖友!下面po上代碼以及錯(cuò)誤提示。(請(qǐng)忽略俺糾結(jié)的注釋……) #include<stdio.h> #include<stdlib.h> /************************************* 需要寫(xiě)三個(gè)函數(shù) 打印數(shù)組的函數(shù)print(int?a[],int?end) 快速排序一次劃分的算法partition(int?a[],int?first,int?end) 快速排序完整算法,遞歸調(diào)用,分治quicksort(int?a[],int?first,int?end) **************************************/ /************************************* 打印數(shù)組的函數(shù)print(int?a[],int?end) 用for循環(huán),i++控制循環(huán)次數(shù) **************************************/ void?print(int?a[],?int?end) { int?i; for(i=0;?i<=end;?i++) { print("%d,",??a[i]); } printf("\n");?? return; } /************************************* 快速排序一次劃分的算法partition(int?a[],int?first,int?end) 將i,j的值傳給參數(shù)first,end 大前提是i<j,接著先掃描右邊再掃描左邊 具體: i<j??是??注:要一直進(jìn)行該判斷!? ①a[i]<a[j]??是(j--(即一直減到在右邊掃描到一個(gè)比a[i]小的數(shù),并記錄此時(shí)j的值))? ②a[i]<a[j]??否(基準(zhǔn)數(shù)與?a[j]交換,并i++(即先準(zhǔn)備(記錄)好下一輪從左邊起的該掃描段的起點(diǎn)))? 最后,返回i?(心機(jī)婊,這個(gè)i是分界點(diǎn),分水嶺(處于這個(gè)點(diǎn)上的數(shù)意味著已經(jīng)被排到了正確的位置上了))? “一直?”用?while?循環(huán)? ? **************************************/ int?partition(int?a[],int?first,int?end) { int?temp; int?i=first; int?j=end; while(i<j) { while(a[i]<a[j]) { j--; } if(i?<?j) { temp=a[i]; a[i]=a[j]; a[j]=temp; i++; } while?(a[i]?<=?a[j])? { i++; } ????????if?(i?<?j){ ????????????temp=a[i]; a[i]=a[j]; a[j]=temp; ????????????j--; ????????} }? return?i; }? /************************************* 快速排序完整算法,遞歸調(diào)用,分治quicksort(int?a[],int?first,int?end) 調(diào)用函數(shù)partition() 使用partition()返回的分界點(diǎn)i 對(duì)i之前的那部分?jǐn)?shù)用partition()?, 和對(duì)i之后的那部分?jǐn)?shù)用partition()?? **************************************/ void?quicksort(int?a[],int?first,int?end) { int?point=partition(a,first,end); quicksort(a,?first,?point-1); quicksort(a,?point+1,?end); return; }? /************************************* main函數(shù) 初始化數(shù)組,即寫(xiě)入待排序數(shù)組? 并把值傳給參數(shù)first,end **************************************/ int?main() { int?a[]={2,3,8,1,9}; int?first=0; int?end=4; printf("原始數(shù)組:"); print(a,end); quicksort(a,first,end); printf("排序后:"); print(a,end); system("pause"); return?0; }錯(cuò)誤提示:? ? ? ? ? E:\C-SPACE\fang快速排序.cpp In function 'void print(int*, int)':26 21 E:\C-SPACE\fang快速排序.cpp [Error] cannot convert 'const char*' to 'int*' for argument '1' to 'void print(int*, int)'我是拿Dev-C++編譯運(yùn)行的。all……請(qǐng)各位大佬講解時(shí)盡量簡(jiǎn)單詳盡,或者告訴俺應(yīng)該著重看哪個(gè)方面的內(nèi)容……謝謝各位大佬了……for(i=0;i<1000000;i++){????????printf("給大佬遞茶");}
查看完整描述

3 回答

已采納
?
Jedenn

TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超2個(gè)贊

void?print(int?a[],?int?end)
{
????int?i;
????for(i=0;?i<=end;?i++)
????{
????????print("%d,",??a[i]);??//這里出錯(cuò)了,不是print,而是printf。
????}
????printf("\n");??
????return;
}

不要寫(xiě)和庫(kù)函數(shù)如此類似的自定義函數(shù)。

另外,錯(cuò)誤提示有給出錯(cuò)誤發(fā)生的位置,心細(xì)一點(diǎn)就能發(fā)現(xiàn)了。

查看完整回答
1 反對(duì) 回復(fù) 2018-03-21
?
酉時(shí)酒味濃

TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超2個(gè)贊

http://img1.sycdn.imooc.com//5ab22a7c0001ede308260607.jpg

print()函數(shù)改過(guò)來(lái)后又有新問(wèn)題……媽耶,繼續(xù)求助,謝謝各位大佬

查看完整回答
1 反對(duì) 回復(fù) 2018-03-21
?
Jedenn

TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超2個(gè)贊

void?quicksort(int?a[],int?first,int?end)
{??
????//?你這個(gè)遞歸函數(shù)沒(méi)有終止條件,是無(wú)法返回的。遞歸調(diào)用無(wú)法終止,
????int?point=partition(a,first,end);
????quicksort(a,?first,?point-1);
????quicksort(a,?point+1,?end);
????return;
}

你這個(gè)遞歸函數(shù)沒(méi)有終止條件,是無(wú)法返回的。遞歸調(diào)用無(wú)法終止,于是不停地在棧區(qū)壓入函數(shù)調(diào)用,久而久之就超出了棧的大小(一般大小為2M),于是程序就嘗試訪問(wèn)不該訪問(wèn)的內(nèi)存,操作系統(tǒng)就觸發(fā)一個(gè)segment fault的信號(hào)。

void?quicksort(int?a[],int?first,int?end)
{??
	if(first?<?end){
		int?point=partition(a,first,end);
		quicksort(a,?first,?point-1);
		quicksort(a,?point+1,?end);
	}
	return;
}

這個(gè)代碼就不會(huì)無(wú)限遞歸了,但是還有其他的邏輯問(wèn)題,你這段代碼還有其他的錯(cuò)誤。

查看完整回答
反對(duì) 回復(fù) 2018-03-21
  • 3 回答
  • 0 關(guān)注
  • 3505 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)