데이터 구조 알고리즘 (코드 실행) 정렬

삽입 정렬

1. 직접 삽입 정렬, C 언어.

알고리즘 생각 : 약간

메인 INT () {
          INT A [] = {1,9,4,6,8,10,7}
          int로 I, J, 라,
          라 = sizeof의 (A) / sizeof의 (A [0])
          에 대한 ( I = 1; i가 라 <; 내가 ++)은 {// 두 번째 요소에서, 즉 (1)의 배열 첨자로부터 시작 초기 추측 A [0] 주문한 시퀀스 인해
                    INT 온도 = A [I ]; // 임시 변수를 삽입 요소 저장
                    (, J = I-1 {// - J, J> = 0 && A [J]> TEMP) 비교는 j 번째의 요소들의 i 번째 요소의 삽입 (예를 이전 요소의 크기와 비교)
                                                                // j 번째의 요소들의 i 번째 요소보다 더 작은, 상기주기 (즉, 삽입 위치를 찾기 위해)로 진행한다. (초기 정렬 순서를 오름차순)
                              A [j 개의 + 1한다.] = A [J]; // j 번째의 요소를 순차적으로 I-1 번째의 소자에 한 위치 (빨리 시프트 위치 큰 소자 후) 이동
                    }
                    을 [J + 1] = 온도; // 의 삽입 소자가 삽입 될 위치 J + 1 (j + 1 삽입 위치를 찾을 필요가있다).
          }
          내용 (INT A = 0;은 <라; ++) {
                    의 printf ( "%의 D ', A [A]);
          }
          0을 반환;
}

2. 이진 삽입 정렬, C 언어

알고리즘 생각 : 약간

메인 INT () {
          INT A [] = {15,9,4,6,8,10,11}
          int로 I, J, LA, 낮음 높음, MID;
          라 = sizeof의 (A) / sizeof의 (A [ 0])
          에 대한 (I = 1]. I 라를 <; I는 ++) {
                    INT의 TEMP = A [I]를 // 삽입 임시 변화 소자 저장
                    높은 = I- 0 = 로우 1; // 이진 탐색 범위가 결정되는
                    동안 (저 <= 높음) {// 찾을 증가 주문
                              / 중간 = (+ 낮은 높이) 2] // 중간 요소 찾기 내림
                              IF (A [미드]> TEMP) {
                                        높은 MID = 1]. / / 요소의 중간 위치가 엘리먼트의 i 번째 위치에보다 큰, 높은 중간 = 1 즉
                                        // i 번째 요소는 높은 위치 + (1)에 삽입한다.
                              다른 {}
                                        낮은 = MID + 1;. // 그렇지 않으면 모바일 저,이 while 루프를 입력합니다.
                              }
                    }
                    내용 (J = I-1; J> = 하이 + 1, J -) {// 해주기 위해 1 + 높은 I-1 요소를 첫 번째 요소로 소자의 위치 이동, 상기 상품의 위치를 결정하는,
                              제가 하나를 위로 이동 //
                              ; A [+ J. 1]은 [J] =
                    }
                    A [하이 + 1] = TEMP를 // 마지막 임시 변수 i 번째 원소 값이 저장된 제 1 고 + 1 번째에 할당 위치, 즉 삽입 부재
          }
          (INT를 A = 0;은 <라; ++) {위한
                    의 printf ( "%의 D ', A [A])
          }
          리턴 0;
}

3. 쉘 종류

II. 정렬 교환

1. 버블 정렬

메인 INT () {
          INT A [] = {10,23,20,2,1}
          ; I는, J, LA, TEMP int로
          라 = sizeof의 (A) / sizeof의가 (A [0]); // 어레이를 얻을 길이
          (; 나는 = 0 < 라; 내가 ++) {// 배열 길이 정렬의 수 -1
                    플래그 = 0에서 INT // 종료 플래그 정렬
                    에 대한 (j를 = LA-1; J> I; j--) {// 각 정렬을위한 비교의 수 : LA-1의 배열 점차 사이클이 감소
                              하는 경우 (a [J-1] >은 [J]) {// 전환 조건이 만족된다 (승순)
                                        TEMP = A [J. 1- ]
                                        , A는 [J-1]은 [J] =
                                        A [J] = TEMP를,
                                        플래그 = 1에서, // 교환 플래그 종료 후 1
                              }
                    }
                    플래그 비트가 제로이면 (플래그 == 0) {// 일절 교환 마지막 질서 설명을 발생하지 않으면, 단부 정렬, 정렬 결과를 출력.
                    의 printf ( "실행 분류 결과 % D는 :"I + 1.)
                    {(;은 <라 ++ INT를 A = 0) 용
                              의 printf ( "%의 D ', A는 [A])
                    }
                    의 printf ("\ ) "N-;
                              0을 반환; // 최종 분류
                    }
          }
}

2. 빠른 정렬

3. 정렬

1. 간단한 선택 정렬

INT의 main () {
          INT A [] = {} 10,23,20,2,1;
          int로 I, J, LA, 분, 온도;
          라를 sizeof = (A) /를 sizeof (A [0]);
          대 (I = 0; I <라; 내가 ++) {
                    분 = 1;
                    에 대한 (j = 1 + 1, J <라; J ++) {
                              경우 (A [J] <A [분]) {
                                        분 = J;
                              }
                    }
                    (최소 = I!) 경우에 {
                              온도 = A [I];
                              A [I] = A [분];
                              A [분] = 온도;
                    }
                    의 printf ( "第% D趟排序结果:"I + 1);
                    대 (INT를 A = 0;은 <라; ++) {
                              의 printf ( "%의 D ', A [A]);
                    }
                    의 printf ( "\ n")를;
          }
}

2. 힙 정렬

 

추천

출처www.cnblogs.com/hero-xu/p/11537144.html