プログラム / 2007/12/04 (Tue) / 編集 |
バブルソートも作ったのでメモっておく、ほんとはマージソート作ろうと思ったんだが眠かったので妥協したのですよ〜 まぁそんなに件数多くないはずだからいいかとね
/**結果出力の補助
*@param[in] (int[][])srcArray ソートする遺伝子の配列
*@param[in] (int)key 適応度が入っている要素の番号
*
*@return (int[][])srcArray ソート済みのsrcArray
*/
public static int[][] Bubblesort(int[][] srcArray,int key){
int[] temp = new int[srcArray[0].length];
for(int i=0; i
for(int j=srcArray.length-2; j>i; j--){
//System.out.println(srcArray[j+1][key]+"<->"+srcArray[j][key]);
if(srcArray[j+1][key] <= srcArray[j][key]){
System.arraycopy(srcArray[j], 0,temp, 0,srcArray[j].length);
System.arraycopy(srcArray[j+1], 0,srcArray[j], 0,srcArray[j+1].length);
System.arraycopy(temp, 0,srcArray[j+1], 0,temp.length);
}
}
}
return srcArray;
}
ちなみにわざわざ作ったのは二次元配列のソートが進化計算で使いたかったからであって、一次元配列ならJavaに内蔵されてるsort関数でクイックソートが使えるらしい。
/**結果出力の補助
*@param[in] (int[][])srcArray ソートする遺伝子の配列
*@param[in] (int)key 適応度が入っている要素の番号
*
*@return (int[][])srcArray ソート済みのsrcArray
*/
public static int[][] Bubblesort(int[][] srcArray,int key){
int[] temp = new int[srcArray[0].length];
for(int i=0; i
//System.out.println(srcArray[j+1][key]+"<->"+srcArray[j][key]);
if(srcArray[j+1][key] <= srcArray[j][key]){
System.arraycopy(srcArray[j], 0,temp, 0,srcArray[j].length);
System.arraycopy(srcArray[j+1], 0,srcArray[j], 0,srcArray[j+1].length);
System.arraycopy(temp, 0,srcArray[j+1], 0,temp.length);
}
}
}
return srcArray;
}
ちなみにわざわざ作ったのは二次元配列のソートが進化計算で使いたかったからであって、一次元配列ならJavaに内蔵されてるsort関数でクイックソートが使えるらしい。
PR
トラックバック
URL :
コメント