バブルソートを使用してarraylistの要素をソートするために必要なパス数を確認するにはどうすればよいですか?私はこれらの2つの方法を持っています。ArrayList内の要素をソートするために必要なパスを確認する方法は?
public boolean checkInSortedOrder(ArrayList<QuakeEntry> quakes){
boolean sorted = true;
for (int i = 1; i < quakes.size(); i++) {
if (quakes.get(i-1).compareTo(quakes.get(i)) > 0){
sorted = false;
}
}
return sorted;
上記のメソッドは、arrayListがソートされているかどうかをチェックします。 このメソッドはバブルソートを実行します。
public void onePassBubbleSort(ArrayList<QuakeEntry> quakeData, int numSorted){
int j;
QuakeEntry temp;
for(int i=0; i<numSorted; i++){
for(j=0; j<(quakeData.size()-i-1);j++){
if(quakeData.get(j).getMagnitude()>quakeData.get(j+1).getMagnitude()){
temp=quakeData.get(j);
quakeData.set(j,quakeData.get(j+1));
quakeData.set(j+1,temp);
}
}
System.out.println("Printing Quakes after "+ i +" pass ");
for (QuakeEntry qe: quakeData) {
System.out.println(qe);
}
}
}
私はカウンタ変数を追加する必要があることを知っています。しかし、少しコードと混同しています。
カウンタ変数を追加し、各それを増分パスしている時間。 –
私はカウンタ変数を追加する必要があることを知っています。しかし、私はコードと少し混乱しています。私にコードをお願いします。 – Darpanjbora
@Darpanjbora:2番目のforループの終了条件は、パスの数です(長さ-1、ArrayListに4つの要素がある場合、パスは3になります。常に3つになります。正確にあなたが知る必要があるもの。 –