리 셋 알고리즘 Day 03 - 빠 른 정렬

1432 단어
빠 른 정렬 기본 사상
6, 1, 2, 7, 9, 3, 4, 5, 10, 8 을 작은 것 부터 큰 것 까지 순서대로 예 를 들 어 설명 한다.
  • 6 을 기준 으로 6 보다 작은 것 은 6 의 왼쪽 에 놓 고 6 보다 큰 것 은 6 의 오른쪽 에 놓는다.
  • 두 개의 표지 기 i = 0, j = 9 를 설정 합 니 다.i 는 배열 의 맨 왼쪽 에 있 고 j 는 배열 의 맨 오른쪽 에 있다.
  • j 가 먼저 움 직 이 고 a [j] < 6 을 순서대로 비교 하 며 성립 되 지 않 으 면 j -;성립 되면 j 정지.하면, 만약, 만약...
  • i 재 동, 순서대로 a [i] > 6 을 비교 하고 성립 되 지 않 으 면 i + +;성립 되면 i 정지.하면, 만약, 만약...
  • i = j 라면 6 을 a [j] 와 교환 합 니 다.이렇게 한 라운드 진행: 기다 린 결 과 는 3, 1, 2, 5, 4, 6, 9, 7, 108, 6 왼쪽 모두 6 보다 작 았 다.그리고 3, 1, 2, 5, 4, 9, 7, 10, 8
  • .
    코드 구현
    #include 
    int a[100];
    int n;
    
    void quicksort(int left, int right)
    {
        if (left >= right) {
            return;
        }
        int i, j;
        i=left;
        j=right;
        int temp = a[left]; //    
        while (i!=j) {
            while (a[j]>=temp && j>i) {
                j--;
            }
            while (a[i]<=temp && j>i) {
                i++;
            }
            
            if (i

    총결산
    빠 른 정렬 이 빠 른 이 유 는 거품 정렬 에 비해 매번 교환 이 점프 식 이기 때문이다.정렬 할 때마다 하나의 기준점 을 설정 하고 기준점 보다 작은 수 를 모두 기준점 의 왼쪽 에 놓 으 며 기준점 보다 큰 수 를 모두 기준점 의 오른쪽 에 놓 습 니 다.이렇게 하면 매번 교환 할 때마다 거품 정렬 처럼 인접 한 수 사이 에서 만 교환 할 수 있다.교환 거리 도 훨씬 넓 어 졌 다.

    좋은 웹페이지 즐겨찾기