我目前只有學迴圈、判斷式、陣列!能不能以我現有的知識引導我!
以下程式碼是要寫"快速排序法",以16區分左半段 & 右半段,左半段排完了,右半段
還排不出來!()
以下do while是表示右半段的排序
Q:g沒有遞增,z[n+1]=37 ,請問我觀念哪出問題 or 程式碼哪裡錯了?
int z[]={5,15,16,37,52,35,41,21};
int n=2;
do{ //右半段
for(g=n+1;g<z.length;g++){ //由左向右找
if(z[n+1]<z[g]){ ※//如果z[n+1]<z[g]跳出迴圈
a1=z[g]; //沒功用,讓我好檢查數值目前多少
break;
}System.out.println("ggg "+g+" ggg");
if(g==n+1){ //如果
g=g+z.length;
}
}
for(h=7;h>n;h--){ //由右向左找
if(z[n+1]>z[h]){ //找到小的跳出迴圈
a2=z[h];
break;
}
}System.out.println("hhh "+a2+" hhh"); //個人檢查數值用
if(g>h){ //如果g位置>h位置,作交換
desk=z[h];
z[h]=z[n+1];
z[n+1]=desk;
k=h;
System.out.println("kkk "+k+" kkk");
}
else{ //如果g位置<h位置,作交換
desk=z[g];
z[g]=z[h];
z[h]=desk;
}
}while(g<h); //如果g位置<h位置,回到迴圈
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.113.67.190
→
01/11 11:27, , 1F
01/11 11:27, 1F
推
01/11 11:28, , 2F
01/11 11:28, 2F
※ 編輯: Jyie 來自: 59.113.67.190 (01/11 11:43)
推
01/11 13:24, , 3F
01/11 13:24, 3F
→
01/11 13:31, , 4F
01/11 13:31, 4F
推
01/11 13:55, , 5F
01/11 13:55, 5F
推
01/11 15:11, , 6F
01/11 15:11, 6F
推
01/11 16:00, , 7F
01/11 16:00, 7F
推
01/12 19:51, , 8F
01/12 19:51, 8F
推
01/12 19:53, , 9F
01/12 19:53, 9F