ソート【泡立ちソート】
2086 ワード
バブルソートの考え方:
大きな記録が沈殿する.
改善された泡ソート:
大きな記録が沈殿する.
/**
* SimpleBubbleSort.java
*
* 。
*
* @author Administrator
*/
public class SimpleBubbleSort {
public static void simpleBubbleSort(int[] a) {
for (int i = a.length; i > 1; i--)
for (int j = 0; j < i - 1; j++)
if (a[j] > a[j + 1])
Util.swap(a, j, j + 1);
}
public static void main(String[] args) throws Exception {
if (args.length == 0) {
System.out.println(" ");
System.exit(-1);
}
int[] a = new int[args.length];
for (int i = 0; i < args.length; i++)
a[i] = Integer.parseInt(args[i]);
simpleBubbleSort(a);
// 。
for (int i = 0; i < a.length; i++)
System.out.println(a[i]);
}
}
改善された泡ソート:
/**
* EnhancedBubbleSort.java
*
* 。
*
* @author Administrator
*/
public class EnhancedBubbleSort {
public static void enhancedBubbleSort(int[] a) {
int i = a.length - 1;
while (i > 0) { //
int lastExchangedIndex = 0;
for (int j = 0; j < i; j++)
if (a[j] > a[j + 1]) {
Util.swap(a, j, j + 1);
lastExchangedIndex = j;
}
i = lastExchangedIndex; //
}
}
public static void main(String[] args) throws Exception {
if (args.length == 0) {
System.out.println(" ");
System.exit(-1);
}
int[] a = new int[args.length];
for (int i = 0; i < args.length; i++)
a[i] = Integer.parseInt(args[i]);
enhancedBubbleSort(a);
// 。
for (int i = 0; i < a.length; i++)
System.out.println(a[i]);
}
}