버블링정렬 방법 |
버블 정렬 방법 버블 알고리즘은 전통적인 C 언어 교과서에서 널리 논의되는 비교적 안정적인 정렬 알고리즘입니다. 이 정렬 알고리즘을 사용하면 이름에서 구현 형태를 생각할 수 있습니다. 버블링 하면 가장 먼저 떠오르는 것은 작은 물고기가 물 속에서 헤엄치며 작은 거품을 뿜어내며 수면으로 떠오르는 모습이다. 사실 버블 선별 방법은 버블을 터뜨리는 것과 똑같습니다. 한 번에 하나씩만 뱉어내고, 계속해서 하나씩 뱉어내는 방식입니다. 버블 정렬 알고리즘의 핵심 아이디어는 인접한 두 숫자를 비교한 다음 크기 요구 사항에 따라 위치를 교환하는 것입니다. 두 요소로 구성된 가장 간단한 배열부터 시작하여 거기에서 추론을 이끌어내겠습니다. 배열 "int array = {8, 0};" 내에 두 개의 요소만 있다고 가정합니다. 정렬할 때 어떤 요소가 더 크고 어떤 요소가 더 작은지 한 번만 판단하면 됩니다. 작은 것부터 큰 것까지 정렬한다고 가정하면 정렬 결과는 "array = {0, 8};"이 되어야 합니다. 세 가지 요소로 구성된 배열을 살펴보겠습니다. 배열 "int array = {8, 0, 1};" 내에 두 개의 요소만 있다고 가정합니다. 그런 다음 여전히 쌍별 비교를 수행합니다. 첫 번째 비교에서는 배열이 "array = {0, 1, 8};"이어야 하며 배열 정렬을 완료하려면 한 번의 비교만 필요하다는 결론을 내릴 수 있습니다. 그러나 배열이 요소의 위치를 변경하면, 즉 "int array = {8, 1, 0};"이면 요소의 첫 번째 쌍 비교는 "array = {1, 0,"이 됩니다. 8} ;", 따라서 이러한 극단적인 상황이 발생하면 버블 메서드는 한 번의 비교로 정렬을 완료할 수 없으므로 두 번째 비교를 수행해야 합니다. 마지막으로 두 번째 비교에서는 "array = {0, 1, 8}; "요소가 4개인 경우 배열의 정렬을 살펴보겠습니다. 이번에는 극단적인 경우, 즉 큰 배열에서 작은 배열로 배열을 작은 배열에서 큰 배열로 변경하는 경우를 살펴보겠습니다. 배열은 "int 배열 = {9, 8, 1, 0};"입니다. 그러면 이때 인접한 두 요소의 첫 번째 비교에서는 "array = {8, 1, 0, 9};"이 나올 수 있고, 인접한 요소의 두 번째 비교에서는 "array = {1, 0, 8, 9}"가 나올 수 있습니다. ;", 세 번째 쌍별 비교에서는 "array = {0, 1, 8, 9};"이 생성될 수 있습니다. 위의 분석을 바탕으로 배열에 정렬해야 하는 n개의 요소가 있는 경우 정렬의 극단적인 경우는 n-1번이 되어야 한다는 것을 알 수 있습니다. 구체적인 분류 과정은 다음과 같습니다. ~
버블 정렬 방법의 과정
그래서 위의 분석을 바탕으로 다음과 같이 코드를 작성할 수 있습니다.
다음으로 그림 5-4-3과 같이 각 단계에서 인접한 두 요소의 비교를 인쇄하도록 프로그램을 수정합니다. 물 속의 작은 금붕어가 뱉어낸 일련의 거품이 천천히 물에서 나오는 것처럼, 더 큰 요소가 교환(오름차순 또는 내림차순으로 배열)을 통해 시퀀스의 맨 위로 천천히 "떠다니는" 것을 볼 수 있습니다. 따라서 이름은 "버블 정렬"입니다.
버블 정렬 단일 단계 인쇄
선택 정렬 방법
선택 정렬 선택 정렬, 일반적으로 "총알을 물린 정렬"로 알려진, 물론 이 "총알을 물린 정렬"을 제가 명명한 것입니다. 그것 이름은 가장 직관적인 정렬 방법이기 때문에 "폭력적인 미학"이라는 네 단어를 완벽하게 설명합니다. 선택 정렬을 이해하려면 먼저 초등학교 체육 시간에 교사가 팀을 어떻게 구성하는지 상상해 보세요. 먼저, 교사가 가장 키가 작다고 생각하는 학생을 무작위로 선택하여 그 학생을 리더로 두고, 그 학생이 더 키가 크면 그 학생 뒤에 배치됩니다. 그런 다음 두 번째 항목을 육안으로 검사하는 식으로 진행됩니다. 물론 위 문단은 체육교사의 속마음을 기술한 것이다. 배열을 정렬할 때 이 방법을 사용할 수도 있습니다. 먼저 뱅가드를 지정할 수 있습니다. 작은 것부터 큰 것 순으로 정렬하고 싶다고 가정하고, 먼저 첫 번째 요소가 배열에서 가장 작은 요소라고 가정한 다음, 이 요소가 더 작은 것으로 확인되면 이를 나머지 요소와 각각 비교합니다. 그런 다음 해당 요소와 자체를 교환하면 전체 배열을 순회하고 첫 번째 요소 위치에 가장 작은 요소만 배치하면 됩니다. 다음과 같습니다.
선택 정렬은 순회 비교를 수행합니다
위 그림에서는 첫 번째 순회 비교를 통해 가장 작은 요소를 배열의 가장 왼쪽 끝에 배치했으며 다음으로 해야 할 일은 단 하나입니다. pass 나머지 9개 요소를 비교하여 최소값을 찾아 0의 오른쪽에 넣는 식으로, 마지막으로 아래 그림과 같이 선택 정렬 프로그램을 작성할 수 있습니다.
위 내용은 Java 언어를 사용하여 버블 정렬 및 선택 정렬 알고리즘 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!