개인 재정 Java에서 Quicksort 기술은 어떻게 작동합니까? - 더미

Java에서 Quicksort 기술은 어떻게 작동합니까? - 더미

비디오: Lec 4 | MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503), Fall 2005 2024

비디오: Lec 4 | MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503), Fall 2005 2024
Anonim

자바에서 가장 일반적으로 사용되는 정렬 기법이 실제로 어떻게 작동하는지 살펴 보겠습니다. 이 기법은 Quicksort, 라고하며 재귀를 매우 독창적으로 사용합니다.

우리 중 대부분은 퀵 소트 (Quicksort) 작업과 같은 정렬 알고리즘이 단순히 지적인 운동 일 뿐이라는 것을 알아 냈습니다. Java API에는 이미 정렬이 내장되어 있습니다.

Quicksort 기술은 재귀를 사용하여 값 배열을 정렬합니다. 기본 단계는 다음과 같습니다.

  1. 배열의 값 범위 내에있는 임의의 값을 선택합니다.

    이 값은 피벗 포인트 입니다. 피벗 점을 선택하는 가장 일반적인 방법은 배열에서 첫 번째 값을 선택하는 것입니다. 사람들은보다 정교한 방법으로 피벗 포인트를 선택하여 더 빠른 정렬을 할 수있는 박사 학위를 취득했습니다. 배열의 첫 번째 요소를 사용하십시오.

  2. 피벗 점보다 작은 모든 값이 배열의 왼쪽에 있고 피벗 점보다 크거나 같은 모든 값이 배열의 오른쪽에 있도록 배열의 값을 다시 정렬합니다. 정렬.

    피벗 값 은 배열의 왼쪽과 오른쪽 사이의 경계를 나타냅니다. 아마 죽은 센터가 아니 겠지만 그건 중요하지 않습니다. 이 단계를 파티셔닝이라고하며 배열의 왼쪽과 오른쪽은 파티션입니다.

  3. 이제 배열의 두 섹션을 별도의 배열로 처리하고 해당 섹션에 대해 1 단계부터 다시 시작하십시오.

    이것은 알고리즘의 재귀 부분입니다.

38 17 58 22 69 31 88 28 86 12

여기서 피벗 포인트는 38이며 파티셔닝 단계의 작업은 배열을 다음과 같이 다시 배열하는 것입니다. < 17 12 22 28 31 38 88 69 86 58

값이 여전히 잘못되었음을 알 수 있습니다. 그러나 배열은 값 38로 나누어 져 있습니다. 38 미만의 모든 값은 38의 왼쪽에 있고 38보다 큰 모든 값은 38의 오른쪽에 있습니다.

이제는 값 38로 두 개의 파티션으로 배열하고 각면에 대해 프로세스를 반복하십시오. 피벗 값 자체는 왼쪽 분할 영역과 함께 있으므로 왼쪽 분할 영역은 다음과 같습니다.

17 12 22 28 31 38

이번에는 분할 단계에서 17을 피벗 점으로 선택하고 다음과 같이 요소를 재정렬합니다. > 12 17 22 28 31 38

보시다시피 배열의이 부분이 지금 정렬됩니다.불행하게도 Quicksort는이 시점에서이를 인식하지 못합니다. 따라서 재귀가 좀 더 필요합니다. 하지만 이것이 기본 프로세스입니다.
Java에서 Quicksort 기술은 어떻게 작동합니까? - 더미

편집자의 선택

Photoshop Elements 11 - Stone

Photoshop Elements 11 - Stone

을 사용하여 Stone Out을 조각하는 방법 Photoshop Elements 11의 도구를 입력하여 텍스트와 같은 모양의 선택 영역을 만든 다음 이미지 자체를 해당 유형의 채우기로 사용합니다. 예를 들어 꽃 테마 웹 페이지를 만드는 경우 꽃 그림을 텍스트 채우기로 사용할 수 있습니다. 유형 선택을 사용하면 모든 부분을 잘라낼 수 있습니다.

Photoshop Elements 9에서 여러 파일을 일괄 처리하는 방법 - 여러 개의 인형이있는 경우

Photoshop Elements 9에서 여러 파일을 일괄 처리하는 방법 - 여러 개의 인형이있는 경우

여러 파일에 공통적으로 적용 할 편집 기능을 사용하면 Photoshop Elements에서 이러한 변경 사항을 일괄 적으로 처리 할 수 ​​있습니다. 단일 메뉴 명령을 사용하여 파일 형식을 변경하고 파일 속성을 변경하고 공통 파일 기본 이름을 추가 할 수 있습니다. 파일 이름 바꾸기는 내보내기 명령의 일부일 수도 있고 사용할 수도 있습니다.

편집자의 선택

승마 2012 런던 하계 올림픽 - 인형

승마 2012 런던 하계 올림픽 - 인형

승마 (말의 화려한 이름) 경쟁 런던 2012 하계 올림픽은 조련사, 이벤트 및 점프의 세 가지 분야로 구성됩니다. 각 분야는 팀과 개인 메달을위한 기회를 제공합니다. 대회는 7 월 28 일부터 31 일까지 개최됩니다. 조련사 경연 대회는 8 월 2 일부터 9 일까지 개최됩니다. 점프 대회는 ...

동계 올림픽에서의 자유형 스키 - 인형

동계 올림픽에서의 자유형 스키 - 인형

프리 스타일 스키는 동계 올림픽의 X 게임 이벤트 중 하나입니다. . 자유형 스키에서는 경쟁자가 언덕 꼭대기에서 바닥까지 다양한 행사를 수행합니다. 프리 스타일 스키는 기술 스키의 가장 중요한 부분을 차지하며 스노우 보드에서 트릭을 만들어내는 기술과 결합되어 있습니다.

필드 2012 런던 하계 올림픽의 이벤트 - 인형

필드 2012 런던 하계 올림픽의 이벤트 - 인형

스프린트, 릴레이 및 도로 경주 이외에도 2012 런던 하계 올림픽 육상 경기에는 점프 및 던지기 경기가 포함됩니다. 남자와 여자는 높은 점프, 긴 점프, 트리플 점프, 장대 높이뛰기 등의 4 가지 점프 이벤트와 총구, 원반, 창 던지기 및 망치와 같은 네 가지 투구 이벤트에서 경쟁합니다. 필드 이벤트 ...

편집자의 선택

Excel의 유용한 범위 객체 메소드 2016 VBA 프로그래밍 - VBA 메소드가 수행하는

Excel의 유용한 범위 객체 메소드 2016 VBA 프로그래밍 - VBA 메소드가 수행하는

엑셀 2016의 액션. Range 객체는 수십 개의 메소드를 가지고 있지만, 이들 중 대부분은 필요하지 않습니다. 여기서는 가장 일반적으로 사용되는 Range 객체 메소드를 찾습니다. Select 메서드 Select 메서드를 사용하여 셀 범위를 선택합니다. 다음 문은 ...

시나리오 관리자를 사용하여 대출 계산 모델링 방법 - 더미

시나리오 관리자를 사용하여 대출 계산 모델링 방법 - 더미

시나리오 관리자는 목표 탐색 데이터 탭의 가정 분석 섹션에 데이터 테이블이 있습니다. 다른 유용한 도구와 함께 그룹화하면 시나리오 관리자가 중요한 도구임을 믿게 될 것입니다. 그러나 유용한 이름과 좋은 회사가 있음에도 불구하고 ...

더 나은보고 모델을 위해 Power Query와 Power Pivot을 함께 사용 - Power Pivot을 사용하여 더미

더 나은보고 모델을 위해 Power Query와 Power Pivot을 함께 사용 - Power Pivot을 사용하여 더미

Power Query를 함께 사용하면 관리 및 유지 보수가 쉬운보고 모델을 만들 수 있습니다. 보고 모델은보고 메커니즘이 구축되는 기초를 제공합니다. 데이터를 가져오고, 변환하고, 모양을 만들고, 집계하는보고 프로세스를 작성하면 본질적으로보고 모델을 구축하게됩니다. 잘못 작성하는 중 ...