このサイトにアップされているクイックソートのアプリを見ながら実装を試みたのですがエラーが出てうまく実装できません・・・
なにか悪い点があればご指摘して頂けると幸いです
プログラムソース
public class quicksort {
private static void c(int x[/url], int i, int j){
int t;
t = x; x = x[j]; x[j] = t;
}
private static void s(int x[/url], int l, int r){
int i, j, p;
i = l; j = r;
p = x[l + r / 2];
while(true){
while(x < p) //左から見てpより大きい物を探す
i++;
while(p < x[j]) //右から見てpより小さい物を探す
j--;
if(i >= j)
break;
c(x, i, j);
i++;
j--;
}
if(l < i -1)
s(x, l, i - 1);
if(j + 1 < r)
s(x, j + 1, r);
}
public static void main(String[/url] args) {
int x[/url] = {10,2,33,26,4,6,55,1,98,48,3,100};
s(x, 0, 11);
for(int i = 0; i <= 9; i++)
System.out.println("x");
}
}
javaでのクイックソートの実装
Re:javaでのクイックソートの実装
> エラーが出てうまく実装できません・・・
何をしたときにどんなエラーが出るかを「具体的に」書いてください。
そうでないと、
> なにか悪い点があればご指摘して頂けると幸いです
このご要望にはお応えできません。
仮に、質問者さんが回答する立場であるとして、
単に「エラーが出た」という状況説明に対して
何か有効な回答ができるとお考えですか?
ところで、
> for(int i = 0; i <= 9; i++)
9までにとどまっている(配列全体を出力しようとしていない)
のは、何か理由があるのですか?
> System.out.println("x");
"x"という文字列を10回出力するのが、プログラムの仕様なのですか?
何をしたときにどんなエラーが出るかを「具体的に」書いてください。
そうでないと、
> なにか悪い点があればご指摘して頂けると幸いです
このご要望にはお応えできません。
仮に、質問者さんが回答する立場であるとして、
単に「エラーが出た」という状況説明に対して
何か有効な回答ができるとお考えですか?
ところで、
> for(int i = 0; i <= 9; i++)
9までにとどまっている(配列全体を出力しようとしていない)
のは、何か理由があるのですか?
> System.out.println("x");
"x"という文字列を10回出力するのが、プログラムの仕様なのですか?

Re:javaでのクイックソートの実装
>>boxさん
出力の仕方を間違えてました・・・
正しくは
for(int i = 0; i <= 11; i++)
System.out.println(x);
でした。
エラーについては後述してくださった変数pの算出方法を変えたらうまくいきました
スレ汚しすいません
>>ぽこさん
見落としてました・・・
わざわざありがとうございます!
出力の仕方を間違えてました・・・
正しくは
for(int i = 0; i <= 11; i++)
System.out.println(x);
でした。
エラーについては後述してくださった変数pの算出方法を変えたらうまくいきました
スレ汚しすいません
>>ぽこさん
見落としてました・・・
わざわざありがとうございます!
