1. 程式人生 > >經典基礎排序之直接排序,選擇排序,氣泡排序.

經典基礎排序之直接排序,選擇排序,氣泡排序.

直接排序:
Collection.sort(lista,new Comparator<Person>() { });
Arrays.sort(arraya,new Comparator<Integer>() { });)
選擇排序:
--陣列
public static void main(String[] args) {
        int arr[]={23,12,46,24,87,65,18,14,43,434,65,76};
        //int arr[]={23,12,46,24,76};
        //選擇排序
        int l=0;
        for(int i=0;i<arr.length-1;i++){
        for(int j=i+1;j<arr.length-1;j++){
        if(arr[i]<arr[j]){
        int t=arr[i];
        arr[i]=arr[j];
        arr[j]=t;
        l++;
        }
        System.out.print("i="+i+"的第j="+j+"次交換\t");
        for(int d=0;d<arr.length;d++){
        System.out.print(arr[d]+"\t");
        }
        System.out.println();
        }
        }
        for(int i=0;i<arr.length;i++){
        System.out.print(arr[i]+"\t");
        }
        System.out.println("交換的次數為"+l);
        }
氣泡排序:
--集合
public List<Students> demo(){
        List<Students> list = new ArrayList<Students>();
        for (int i = 0; i < list .size(); i++)    {  
            for (int j = list .size()-1; j > i; j--)  {  
                String no= list .get(j).getStudentNo();
                String no_1= list .get(j-1).getStudentNo();
                if (no.compareTo(no_1)>0)    {  
                      //互換位置
                     Student  stu = list.get(j);
                     list.set(j, list.get(j-1));
                     list.set(j-1, stu );
                }  
            }  
        } 
        return list
--陣列
public static void test1(Integer[] arr){
        int len =arr.length;
        int temp;
        for(int j=0;j<len-1;j++){
        for(int i=0;i<len-1;i++){
            if(arr[i]>arr[i+1]){
                temp = arr[i];
                arr[i] =arr[i+1];
                arr[i+1] = temp;
            }
        }
        System.out.println(Arrays.toString(arr));
        }    
    }