JAVA経典アルゴリズム40題(18)


【プログラム35】タイトル:入力配列、最大は最初の要素と交換し、最小は最後の要素と交換し、出力配列。
import java.util.*; 
public class Ex35 { 
    public static void main(String[] args) { 
        int i, min, max, n, temp1, temp2; int a[];
        System.out.println("       :");
        Scanner keyboard = new Scanner(System.in);
        n = keyboard.nextInt();
        a = new int[n]; 
        for (i = 0; i < n; i++) {
            System.out.print("   " + (i + 1) + "   ");
            a[i] = keyboard.nextInt();
        }
        //         
        max = 0;
        min = 0;
        //      ,         
        for (i = 1; i < n; i++) { if (a[i] > a[max])
            max = i; //    ,    a[max],          max
            if (a[i] < a[min])
                min = i; //  ,    a[min],          min
        }
        //  for           ,max       ,min       
        temp1 = a[0];
        temp2 = a[min]; //   temp          
        a[0] = a[max];
        a[max] = temp1; //    a[0]    a[max]
        if (min != 0) { //       a[0],    
            a[min] = a[n - 1];
            a[n - 1] = temp2; //  a[min] a[n-1]
        } else { //      a[0],    
            a[max] = a[n - 1];
            a[n - 1] = temp1;
        }
        for (i = 0; i < n; i++) { //    
            System.out.print(a[i] + " ");
        }
    }
}
 
【プログラム36】タイトル:n個の整数があり、その前の各数を順にm個の位置に後ろに移動させ、最後のm個の数を一番前のm個の数に変えます。