Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 버블 정렬로 리스트에서 두 번째로 큰 숫자 찾는 방법

리스트에서 두 번째로 큰 숫자를 찾아야 할 때 버블 정렬(Bubble Sort) 알고리즘을 활용할 수 있습니다. 버블 정렬은 인접한 두 요소를 반복적으로 비교하고 교환하며 리스트를 오름차순으로 정렬하는 가장 기본적인 정렬 방식입니다.

정렬이 완료되면 리스트는 오름차순으로 배치되므로, 맨 뒤에서 두 번째 위치의 요소가 곧 두 번째로 큰 값이 됩니다. 아래 예제를 통해 실제 구현 과정을 살펴보겠습니다.

예제 코드

my_list = []
my_input = int(input("요소의 개수를 입력하세요..."))
for i in range(1, my_input + 1):
    b = int(input("요소를 입력하세요..."))
    my_list.append(b)
for i in range(0, len(my_list)):
    for j in range(0, len(my_list) - i - 1):
        if my_list[j] > my_list[j + 1]:
            temp = my_list[j]
            my_list[j] = my_list[j + 1]
            my_list[j + 1] = temp
print('두 번째로 큰 요소는:')
print(my_list[my_input - 2])

실행 결과

요소의 개수를 입력하세요...5
요소를 입력하세요...1
요소를 입력하세요...4
요소를 입력하세요...9
요소를 입력하세요...11
요소를 입력하세요...0
두 번째로 큰 요소는:
9

코드 설명

  • 먼저 빈 리스트(my_list)를 정의합니다.

  • 사용자로부터 리스트에 담을 요소의 개수를 입력받습니다.

  • 반복문을 통해 사용자가 입력한 각 요소를 리스트에 추가(append)합니다.

  • 중첩 반복문을 사용하여 인접한 두 요소를 비교하고, 앞의 값이 더 크면 서로 교환하는 버블 정렬을 수행합니다.

  • 정렬이 끝나면 리스트는 오름차순으로 배치됩니다.

  • 인덱스 my_input - 2, 즉 뒤에서 두 번째 요소를 콘솔에 출력하여 두 번째로 큰 값을 확인합니다.

위 예제에서 입력된 값 중 가장 큰 수는 11이고, 두 번째로 큰 수는 9이므로 프로그램은 올바르게 9를 출력합니다. 이처럼 버블 정렬은 구현이 간단하여 정렬과 함께 최댓값, 두 번째 최댓값 등을 손쉽게 찾는 데 활용할 수 있습니다.