정렬 선택 VS 거품 정렬

정렬 선택: 현재 최소 또는 최대 의 위치 와 해당 하 는 위 치 를 선택 할 때마다 정렬 을 완성 하 는 것 이 좋 습 니 다. 거품 정렬 에 대한 최적화 입 니 다.거품 정렬: 현재 의 가장 크 거나 가장 작은 숫자 를 해당 하 는 위치 로 선택 합 니 다. 그러나 그 는 매번 두 번 교환 합 니 다. 기포 처럼 천천히 숫자 를 올 립 니 다. 이들 의 과정 이 다 르 기 때문에 표 시 를 사용 하여 현재 교환 해 야 할 위 치 를 표시 합 니 다. 마지막 으로 한 번 만 교환 하고 한 번 에 똑 같은 점 을 선택 합 니 다. 이들 의 사상 과 같 습 니 다.모두 거품 이 생기 지만 선택 은 단숨에 날 아 가 는 것 이 고 거품 은 천천히 올 라 가 는 것 이다.총괄 적 으로 선택 은 거품 에 대한 최적화 이다
거품 정렬 코드
정렬 코드 선택:
public class MaoPaoPaixu {

    public static void main(String[] args) {
        // TODO          
        int[] array = {1,6,8,4,5,2,3};
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");

        }
        System.out.println();
        maoPao(array);
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");
        }
        System.out.println();
    }

    public static void maoPao(int[] array){
        int temp = 0; //    
        int count = 0; //    
        for(int i=0;i<array.length;i++){
            for(int j =0;j<array.length-i-1;j++){
                if(array[j]>array[j+1]){
                    //System.out.print(array[j+1]+"    "+array[j]+" ");
                    temp = array[j+1];
                    array[j+1] = array[j];
                    array[j]= temp;
                    count++;
                }
            }
        }
        System.out.println("     :"+count);

    }

}
  :
1 6 8 4 5 2 312
1 2 3 4 5 6 8 

public class XuanZePaiXu {
public static void main(String[] args) {
    // TODO          
    int[] array = {1,6,8,4,5,2,3};
    for (int i = 0; i < array.length; i++) {
        System.out.print(array[i]+" ");

    }
    System.out.println();
    XuanZe(array);
    for (int i = 0; i < array.length; i++) {
        System.out.print(array[i]+" ");
    }
    System.out.println();
}

/**
 *     ,          ,      
 * @param a
 */
private static void XuanZe(int[] array){

    int min =0; //         
    int temp =0;//    
    int count = 0 ;//    
    for(int i =0;i < array.length-1;i++){
        min = i;
        for(int j=i+1;jarray[j]){
                min = j;
            }
        }
        //             
        temp =  array[i];
        array[i] = array[min];
        array[min] = temp;
        count++;
    }
    System.out.println("     :"+count);
}

} 결과: 1, 6, 8, 4, 5, 2, 3 교환 횟수: 6, 1, 2, 3, 4, 5, 6
“`

좋은 웹페이지 즐겨찾기