정렬 의 원리 및 구현 선택 (C + +)

정렬 선택:
원 리 는 먼저 서열 을 새로운 서열 로 복사 하고 원래 의 서열 을 비 우 는 것 이다.그 다음 에 새로운 시퀀스 에서 최소 값 을 계속 찾 고 최소 값 을 원 시퀀스 의 끝 에 추가 하 며 새로운 시퀀스 의 최소 값 요 소 를 삭제 하여 정렬 의 목적 을 달성 합 니 다. 새로운 시퀀스 에서 최소 값 을 찾 는 과정 은 주요 한 시간 소모 절차 이 고 모두 O (n2) 가 필요 합 니 다. 실제 실현 은 다음 과 같 습 니 다.
//     
// C++  
class Solution{
public:
    void selectionSort(vector<int>& nums){  //     
        int n = nums.size();  //   nums   ,   n  
        if(n == 0 || n == 1) return; //       
        for(int i=0; i<n-1; ++i){
            int minIndex = i; //         ,                .
            for(int j=i+1; j<n; ++j){
                if(nums[j] < nums[i])
                    minIndex = i;
            }
            if(minIndex != i){ //             
                int temp = nums[minIndex];
                nums[minIndex] = nums[i];
                nums[i] = temp;
            }
        }
    }
};

좋은 웹페이지 즐겨찾기