2017-03-05 2 views
-3

나는이 연습 문제와 아주 혼동 스럽다. 질문은선택 정렬에서 숫자 이동이 어떻게 작동합니까?

선택 정렬 알고리즘의 가장 바깥 쪽 루프의 첫 번째 3 번 통과 후에 배열 아래 요소의 상태를 씁니다.

int[] numbers = {45, 78, 89, 34, 23, 12, 67, 56}; 
selectionSort(numbers); 

after pass 1: 
after pass 2: 
after pass 3: 
+0

선택 정렬은 어떻게 작동합니까? 하바 [Wikipedia] (https://en.wikipedia.org/wiki/Selection_sort)에서보기 –

+0

@ JarlikStepsto 감사합니다. – Aayush

답변

0

난 그 숙제라고 생각하기 때문에 나는 당신의 정확한 예를 표시하지 않습니다하지만 난 또 다른 예를 들어 당신을 보여줄 것이다 :

먼저

선택 정렬의 psudo 코드 :

repeat (numOfElements - 1) times 
    set the first unsorted element as the minimum 
    for each of the unsorted elements 
    if element < currentMinimum 
     set element as new minimum 
    swap minimum with first unsorted position 

예 :

int[] numbers = {8, 23, 7, 34, 50, 15, 16}; 
selectionSort(numbers); 

설정 8 등 현재의 최소값을 찾은 다음 나머지의 정렬되지 않은 요소를 반복하여 실제 최소값을 찾습니다.

첫 번째 정렬되지 않은 요소 (8)로 최소 (7)을 바꿉니다.

after pass 1: {7, 23, 8, 34, 50, 15, 16} 

첫 번째 정렬되지 않은 요소 (23)로 최소 (8)을 바꿉니다.

after pass 2: {7, 8, 23, 34, 50, 15, 16} 

첫 번째 정렬되지 않은 요소 (23)로 최소 (15)를 바꿉니다.

after pass 3: {7, 8, 15, 34, 50, 23, 16} 

첫 번째 정렬되지 않은 요소 (34)로 최소 (16)을 바꿉니다.

after pass 4: {7, 8, 15, 16, 50, 23, 34} 

첫 번째 정렬되지 않은 요소 (50)로 최소 (23)을 바꿉니다.

after pass 5: {7, 8, 15, 16, 23, 50, 34} 

첫 번째 정렬되지 않은 요소 (50)로 최소 (34)를 교체하십시오.

after pass 6: {7, 8, 15, 16, 23, 34, 50} 

정렬 기준 :

+1

정말 고마워요. 이것은 많은 의미가 있습니다. – Aayush