函數(shù)kuaipai1 進入了無限死循環(huán)。
創(chuàng)新互聯(lián)是一家專業(yè)提供廣南企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、成都做網(wǎng)站、HTML5建站、小程序制作等業(yè)務(wù)。10年已為廣南眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。
遞歸函數(shù)沒有一個節(jié)點判定遞歸結(jié)束,導(dǎo)致進入死循環(huán)
系統(tǒng)堆棧用完,程序崩潰。
程序調(diào)試報告有無限死循環(huán)危險,運行后就直接崩潰,導(dǎo)致棧溢出。
#include?stdlib.h
#include?stdio.h
#define?MAXN?8
#define?MOD?1024
void?QuickSort(int?*arr,?int?low,?int?high)
{
if?(low?=?high)?return;
//保存排序區(qū)間的?起始位置和終點位置
int?left?=?low,?right?=?high;
//默認?左邊第一個元素?為標志
int?key?=?arr[low];
while?(low??high)
{
while?(low??high??arr[high]?=?key)?--high;
arr[low]?=?arr[high];
while?(low??high??arr[low]?=?key)?++low;
arr[high]?=?arr[low];
}
arr[low]?=?key;
//每次排序后都分成兩部分[left,?low)?(low,?right]
//arr[low]的位置是一定是有序的
QuickSort(arr,?left,?low?-?1);
QuickSort(arr,?low?+?1,?right);
return;
}
int?main(void)
{
int?n;
scanf("%d",?n);
int?arr[MAXN]?=?{0};
int?i;
for?(i?=?0;?i??n;?++i)
scanf("%d",?arr[i]);
//輸入是默認為生活中習(xí)慣的數(shù)組左邊第一個為:編號1
int?s,?m;
scanf("%d?%d",?s,?m);
//轉(zhuǎn)成計算機數(shù)組第一個為:編號0
s--;?m--;
//快排
QuickSort(arr,?s,?m);
//輸出
for?(i?=?s;?i?=?m;?++i)
{
printf("%d?",?arr[i]);
}
return?0;
}
//測試數(shù)據(jù)
//8
//1?2?3?4?5?6?7?8
//2?6
輸出 6 5 4 3 2
#include stdio.h
#includestdlib.h
#includestring.h
int comp(char *a,char *b)
{
while(*a==*b*a*b){a++;b++;}
return (int)*a-(int)*b;
}
int main(void)
{
char s[1000][20];
int i,n;
scanf("%d\n",n);
for(i=0;in;i++)
gets(s[i]);
qsort(s,n,sizeof(s[0]),comp);
printf("\n");
for(i=0;in;i++)
puts(s[i]);
system("pause");
return 0;
}
自定義一個比較函數(shù),直接調(diào)用快排庫函數(shù)qsort即可。舉例如下:
//#include?"stdafx.h"http://If?the?vc++6.0,?with?this?line.
#include?"stdio.h"
#include?"stdlib.h"
#include?"time.h"
struct?ln{
int?data,score,math;
}ss[100];
int?mycmp(const?void?*a,?const?void?*b){//自定義比較函數(shù)
return?((struct?ln*)a)-data-((struct?ln*)b)-data;//若要降序,-號前后變量交換
}//data改為score或math就可按相應(yīng)要素排序
int?main(void){//測試一下……
int?i;
srand((unsigned)time(NULL));
for(i=0;i100;ss[i++].data=rand()%1000);
qsort(ss,100,sizeof(struct?ln),mycmp);
for(i=0;i100;printf("%4d",ss[i++].data));
printf("\n");
return?0;
}
網(wǎng)站題目:c語言快排庫函數(shù) c語音快排
當前地址:http://muchs.cn/article18/doeedgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站收錄、面包屑導(dǎo)航、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)