버블 정렬은 인접한 요소 쌍을 반복적으로 비교 한 다음 잘못된 순서로 존재하는 경우 위치를 교환한다는 아이디어를 기반으로합니다.
예:
참조 : Hackerearth
삽입 정렬은 입력 요소의 하나의 요소가 각 반복에 소비되어 정렬 된 배열에 속하는 위치 인 올바른 위치를 찾는다는 아이디어를 기반으로합니다.
각 반복 할 때 정렬 된 배열을 성장시켜 입력 요소를 반복합니다. 정렬 된 배열에서 현재 요소를 가장 큰 값과 비교합니다. 현재 요소가 더 크면 요소를 그 자리에두고 다음 요소로 이동합니다. 그렇지 않으면 정렬 된 배열에서 올바른 위치를 찾아 해당 위치로 이동합니다. 이것은 정렬 된 배열에서 현재 요소보다 큰 모든 요소를 전방 한 위치로 이동하여 수행됩니다.
예:
참조 : Hackerearth
MERGE SORT는 각 하위 목록이 단일 요소로 구성 될 때까지 목록을 여러 하위 목록으로 나누고 정렬 된 목록으로 이어지는 방식으로 해당 하위 목록을 병합한다는 아이디어를 기반으로 한 분할 및 정복 알고리즘입니다.
아이디어:
분류되지 않은 목록을 각각 포함 요소로 나누십시오. 두 개의 싱글 톤 목록의 인접한 쌍을 가져 와서 병합하여 2 개의 요소 목록을 형성하십시오. 이제 크기 2의 목록으로 변환합니다. 단일 정렬 된 목록이 될 때까지 프로세스를 반복하십시오. 병합을 위해 두 개의 하위 목록을 비교하면서 두 목록의 첫 번째 요소를 고려합니다. 오름차순으로 정렬하는 동안 값이 낮은 요소는 정렬 된 목록의 새로운 요소가됩니다. 이 절차는 두 개의 작은 하위리스트가 비어있을 때까지 반복되고 새로운 결합 된 하위 목록은 두 하위 목록의 모든 요소를 포함합니다.
예:
참조 : Hackerearth, Geeksforgeeks
빠른 정렬은 하나의 요소를 피벗 요소로 선택하고 주변 배열을 분할한다는 아이디어를 기반으로하는 분할 및 정체 접근 방식을 기반으로합니다. 피벗의 왼쪽은 피벗 요소보다 작은 모든 요소가 피벗보다 큰 모든 요소를 포함합니다.
공간 복잡성을 줄이고 병합 정렬에 사용되는 보조 배열의 사용을 제거합니다. 배열에서 임의의 피벗을 선택하면 대부분의 경우에서 시간 복잡성이 향상됩니다.
예:
참조 : Hackerearth, Geeksforgeeks
선택 정렬 알고리즘은 분류되지 않은 부분에서 최소 요소 (오름차순 순서를 고려)를 반복적으로 찾아서 처음에 배열하여 배열을 정렬합니다. 알고리즘은 주어진 배열에서 두 개의 서브 어레이를 유지합니다.
선택 정렬의 모든 반복에서, 소멸되지 않은 서브 어레이에서 최소 요소 (오름차순 순서를 고려)를 선택하고 정렬 된 서브 어레이로 이동합니다.
예:
스택은 최후의 첫 번째 (LIFO) 원칙을 따르는 동적 데이터 구조입니다. 스택에 삽입 될 마지막 항목은 처음으로 삭제되는 항목입니다.
요소 삽입 및 삭제
스택은 요소의 삽입 및 삭제에 제한이 있습니다. 스택의 한쪽 끝에서 상단에서 요소를 삽입하거나 삭제할 수 있습니다. 상단의 요소를 상단 요소라고합니다. 요소 삽입 및 삭제 작업을 각각 Push () 및 POP ()라고합니다.
스택의 상단 요소가 삭제되면 스택이 비어 있지 않으면 이전 상단 요소 바로 아래의 요소가 스택의 새로운 상단 요소가됩니다.
예를 들어, 트레이 스택에서 트레이를 상단에서 가져와 교체하지 않으면 두 번째 트레이는 자동으로 해당 스택의 상단 요소 (트레이)가됩니다.
Enqueue 및 Dequeue. Enqueue는 대기열에 추가하는 것을 의미합니다. Dequeue는 대기열에서 제거하는 것을 의미합니다.
참조 : Hackerearth, Geeksforgeeks