C/C++の宿題を片付けます 88代目
■ このスレッドは過去ログ倉庫に格納されています
0155144
2007/05/27(日) 22:05:53最初自分でクイックソートを書いたのですが、うまくソートされませんでした。
ソースを見て紙に一つずつ書きながらやってみると、確かにうまく出来なさそうな気がするのですが
いまいちぱっとしません。
もしよろしければ、修正ポイントなど教えていただけないでしょうか。
--------
#include<stdlib.h> #include<stdio.h> #define SIZE 10
int S[SIZE];
void quick(int S[],int from,int to) {
int i,j,k,l,pivot;
if(from<to) { pivot=from; i=from+1; j=to;
if(i!=j) { while(i<j) {
if(S[i]>S[pivot]) {
while(S[j]>S[pivot]) { j--; }
if(S[j]<S[pivot]) {
swap (&S[i],&S[j]);
j--; i++; }
else { i--; } }
else{ i++; } }
swap (&S[i],&S[pivot]); }
else { if(S[pivot]>S[i]) {
swap (&S[i],&S[pivot]); } }
quick(S,from,i-1); quick(S,j+1,to); } }
---------
mainとswapは省略してます
最終的には書籍に載っていたサンプルソースで実装しました・・・
■ このスレッドは過去ログ倉庫に格納されています