/*--------------------------------------------- Ex10_4.java メソッド利用:棒グラフを描く,ソートして再描画 ----------------------------------------------*/ package jp_bunkyo; import java.util.Random; public class Ex10_4 { public static void main(String[] args) { Random rnd = new Random(); // 乱数を使う準備(rnd 宣言) int[] x = new int[10]; // 配列 x[i]を宣言 for (int i=0; i < 10; i++) { x[i] = rnd.nextInt(20) + 1; // 配列x[i] に乱数(0,1,...,19)を代入(0は嫌なので1を足している) } for (int i=0; i < 10; i++) { disp(x[i]); // disp()メソッドを呼び出して実行 } bubble_sort(x); // bubble_sort()メソッドを呼び出して実行 System.out.println(); for (int i=0; i < 10; i++) { disp(x[i]); // disp()メソッドを呼び出して実行(再描画) } } public static void disp(int num) { // 棒グラフを描くメソッド System.out.printf("%2d|", num); // 受け取った数字を2桁で表示 for (int i=0; i < num; i++) { System.out.print("*"); // 受け取った数字の数だけ「*」を描く } System.out.println(); // 改行 } public static void bubble_sort(int[] a) { // 配列a[]をバブル・ソートで昇順に並び替えるメソッド int tmp; for (int i=0; i < a.length; i++) { for (int j=0; j < a.length-i-1; j++) { if ( a[j] > a[j+1] ) { // a[j] > a[j+1] なら中身を交換 tmp = a[j]; // tmp に a[j] の中身を一時的に保管 a[j] = a[j+1]; // a[j] に a[j+1]を代入(上書き) a[j+1] = tmp; // a[j+1] に保管しておいたtmp(=a[j]の元の値)を代入(上書き) } } } } }