java数据结构--选择排序

来源:互联网 发布:web即时通讯源码 编辑:程序博客网 时间:2024/05/18 06:07

一 直接选择排序

 基本原理:对长度为 n 的线性表应用直接选择排序,将对线性表进行 n-1次扫描。第一次扫描在原始线性表上进行,从该线性表的第一个位置开始,找出线性表中的最小元素,并将它交换到第一个位置上去。第二次扫描在第一次扫描所产生的结果线性表上进行,从该线性表的第二个位置开始,找出线性表中的次小元素,并将它交换到第二个位置上去...如此重复n-1 次,最终得到的结果就是拍好序的线性表。

如下:红色的代表最小的数

   初始关键字    (26  53   48   11   13   48   32    15)

        第1趟    11   (53  48   26   13   48   32    15)

        第2趟    11   13   (48  26   53   48   32   15)

        第3趟    11   13   15   (26  53   48   32    48)

        第4趟    11   13   15   26   (53  48   32   48)

        第5趟    11   13   15   26   32   (48  52    48)

        第6趟    11   13   15   26   32   48   (52  48)

        第7趟    11   13   15   26   32   48   48   52

java算法实现:

public class Test {
 public static void main(String[] args) {
  int[] a = { 2, 54, 12, 5,98};
  for (int i = 0; i< a.length; i++) {
   System.out.print(a[i]+ " ");
  }
  System.out.println();
  Test.selectionSort(a);
  for (int i = 0; i< a.length; i++) {
   System.out.print(a[i]+ " ");
  }
 }

 public static void selectionSort(int[] a){
  int t=0;
  for (int i = 0; i< a.length - 1; i++){   
   for (int j =i + 1; j < a.length; j++) {
    if(a[j] < a[i]) {
     t= a[i];
     a[i]= a[j];
     a[j]= t;
    }
   }

 

 }
 }
}