JAvaはバブルソート、選択ソート、挿入ソートを実現します.


package com.j2se; public class TestSort { public static void main(String args[]) { int[] a = { 1, 7, 3, 9, 2, 5, 8, 4, 6 }; // bubbleSort(a); //   (Bubble Sort)   // selectionSort(a); //      insertSort(a); //      for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } } /**************************************************************** * *           :          ,       ,      。       1   2  ,     ,    。      2    3  ,     ,    .     ,         ,     ,    。       ,          (       2    3     ,   1       2  ).      ,    ,               ,     ,    ,     ,                 。     ,        。                ,     ,        ,        。        ,       i,       j。      9 ,       9,8,...,1 。                  j   ,        a[j] a[j+1]  ,i     1,2,...,9,     i, j     1,2,...10-i。 public class BubbleSort { public static void sort(int[] data) { int temp; for (int i = 0; i < data.length; i++) { for (int j = data.length - 1; j > i; j--) { if (data[i] > data[j]) { temp = data[i]; data[i] = data[j]; data[j] = temp; } } } } public static void main(String[] args) { int[] a = { 4, 2, 3, 1, 5 }; sort(a); for (int i = 0; i < a.length; i++) System.out.print(a[i] + " "); } } ================================================================================= public class Test { public static void main(String[] args) { int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; System.out.print("   : "); for (int i = 0; i < a.length; i++) System.out.printf("%3s", a[i]); System.out.println(); Test test = new Test(); test.bubbleSort(a); System.out.print("   : "); for (int i = 0; i < a.length; i++) System.out.printf("%3s", a[i]); System.out.println(); } public void bubbleSort(int[] a) { int len = a.length; System.out.println("     :" + len); boolean change = false; int temp; int count = 0; for (int i = len; i > 1; i--) { for (int j = 0; j < i - 1; j++) { if (a[j + 1] < a[j]) { temp = a[j + 1]; a[j + 1] = a[j]; a[j] = temp; change = true; count++; } } if (change) { System.out.print(" " + count + "   : "); for (int k = 0; k < len; k++) System.out.print(a[k] + " "); System.out.println(); } } } } * * @param a * @return */ public static int[] bubbleSort(int[] a) { int len = a.length; for (int i = len - 1; i >= 1; i--) { for (int j = 0; j <= i - 1; j++) { if (a[j] > a[j + 1]) { int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } return a; } /**************************************************** * *           :           n-1    .  1     L[1..n]     L[1]    ,  2     L[2..n]     L[2]    ,......,  i     L[i..n]     L[i]    。   ,  i     , i                     。     ,     ,       ,                        ,              。 * * @param a * @return */ public static int[] selectionSort(int[] a) { for (int i = 0; i < a.length; i++) { for (int j = i + 1; j < a.length; j++) { if (a[i] > a[j]) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } } } return a; } public static int[] insertSort(int[] a) { for (int i = 1; i < a.length; i++) { for (int j = i; j > 0; j--) { if (a[j] < a[j - 1]) { int temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp; } else { break; } } } return a; } } 
より多くのアルゴリズムリファレンス:http://blog.csdn.net/feixiaoxing/article/details/6993718