歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java實現選擇排序

Java實現選擇排序

日期:2017/3/1 10:28:27   编辑:Linux編程

選擇排序和冒泡排序差不多,只是冒泡排序在發現比它小的時候就交換,而選擇排序是只有在確定了最小的數據之後,才會發生交換。

選擇排序的基本思想:第i趟簡單選擇排序是指通過n-i次關鍵字的比較,從n-i+1個記錄中選出關鍵字最小的記錄,並和第i個記錄進行交換。先臨時記錄其位置,只有在一趟 循環完以後確定了最小的數據,才會發生交換。

  1. public class ChoiceSort {
  2. public static void _choiceSort(Integer[] a) {
  3. if (a == null || a.length <= 0) {
  4. return;
  5. }
  6. for (int i = 0; i < a.length; i++) {
  7. int min = i; /* 將當前下標定義為最小值下標 */
  8. for (int j = i + 1; j < a.length; j++) {
  9. if (a[min] > a[j]) { /* 如果有小於當前最小值的關鍵字 */
  10. min = j; /* 將此關鍵字的下標賦值給min */
  11. }
  12. }
  13. if (i != min) {/* 若min不等於i,說明找到最小值,交換 */
  14. int tmp = a[min];
  15. a[min] = a[i];
  16. a[i] = tmp;
  17. }
  18. }
  19. }
  20. }

測試方法:

  1. public static void main(String[] args) {
  2. // TODO Auto-generated method stub
  3. Integer[] list={49,38,65,97,76,13,27,14,10};
  4. //快速排序
  5. /* QuicSort qs=new QuicSort();
  6. qs.quick(list);*/
  7. //冒泡排序
  8. /* BubbleSort bs=new BubbleSort();
  9. bs.bubble(list);*/
  10. //選擇排序
  11. ChoiceSort._choiceSort(list);
  12. for(int i=0;i<list.length;i++){
  13. System.out.print(list[i]+" ");
  14. }
  15. System.out.println();
  16. }

打印結果:

10 13 14 27 38 49 65 76 97

Copyright © Linux教程網 All Rights Reserved