paizaラーニングのレベルアップ問題集「素朴なソートアルゴリズムメニュー」からの出典です。
paiza.jp
Javaによる「素朴なソートアルゴリズムメニュー」問題集と、それらの提出コードの解答例です。
僕が作成、提出したコードは、以下のとおりです。
・挿入ソート
/* Javaによる「素朴なソートアルゴリズムメニュー」問題集 FINAL問題 挿入ソート https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] num = new int[n]; for(int i = 0; i < n; i++){ int x = sc.nextInt(); num[i] = x; } int x; int j; for(int i = 1; i < n; i++){ x = num[i]; j = i; while(j > 0 && num[j-1] > x) { num[j] = num[j-1]; j--; } num[j] = x; for(int y = 0; y < n; y++){ if(y < n-1){ System.out.print(num[y] + " "); }else{ System.out.println(num[y]); } } } } }
・選択ソート
/* Javaによる「素朴なソートアルゴリズムメニュー」問題集 FINAL問題 選択ソート https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] num = new int[n]; for(int i = 0; i < n; i++){ int x = sc.nextInt(); num[i] = x; } for(int i = 0; i < n-1; i++){ int min = i; for(int j =i+1; j < n; j++) { if(num[j] < num[min]){ min = j; } } int temp = num[i]; num[i] = num[min]; num[min] = temp; for(int y = 0; y < n; y++) { if(y < n-1) { System.out.print(num[y] + " "); }else { System.out.println(num[y]); } } } } }
/* Javaによる「素朴なソートアルゴリズムメニュー」問題集 FINAL問題 バブルソート https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] num = new int[n]; for(int i = 0; i < n; i++){ int x = sc.nextInt(); num[i] = x; } for(int i = 0; i < n-1; i++){ for(int j = n-1; j > i; j--){ if(num[j-1] > num[j]){ int temp = num[j]; num[j] = num[j-1]; num[j-1] = temp; } } for(int y = 0; y < n; y++){ if(y < n-1){ System.out.print(num[y] + " "); }else{ System.out.println(num[y]); } } } } }
paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。