02.4 빠 른 정렬

빠 른 정렬 (빠 른 정렬)
  • 빠 른 정렬 (Quick sort) 을 기본적으로 소개 하 는 것 은 거품 정렬 에 대한 개선 이다.그의 기본 사상 은 정렬 을 통 해 정렬 할 데 이 터 를 독립 된 두 부분 으로 나 누 는 것 이다. 그 중에서 일부분 의 모든 데 이 터 는 다른 부분의 모든 데이터 보다 작다. 그 다음 에 이 방법 에 따라 이 두 부분의 데 이 터 를 각각 신속하게 정렬 하고 전체 과정 을 전달 할 수 있다.(불안정)
  • 코드 인 스 턴 스
    func QuickSort(values []int) {
    	//        
    	if len(values) <= 1 {
    		return
    	}
    	//     mid          
    	mid, i := values[0], 1
    	//       
    	head, tail := 0, len(values)-1
    	//                   
    	for head < tail {
    		fmt.Println(values)
    		//           ,         ,    
    		//           ,    
    		if values[i] > mid {
    			values[i], values[tail] = values[tail], values[i]
    			tail--
    		} else {
    			values[i], values[head] = values[head], values[i]
    			head++
    			i++
    		}
    	}
        //           ,           
    	QuickSort(values[:head])
    	QuickSort(values[head+1:])
    }
    func main() {
    	a := []int{2,1,6,0,4,33,3,5,-7}
    	QuickSort(a)
    	fmt.Println(a)
    }
    
  • 링크
  • 목록
  • 이전 절: 정렬 선택
  • 다음 절: 미궁
  • 좋은 웹페이지 즐겨찾기