본문 바로가기

버블정렬4

버블정렬, 삽입정렬, 선택정렬 완전분석 0. 개요 - 본격적으로 알고리즘 공부를 시작하면서, 가장 기초인 정렬 알고리즘을 배웠다. - 수학공식 외우듯, 개념을 이해하고 외워야겠다는 태도로 접근했는데 쉽지 않았다. - 개념은 이해가 가지만, 코드로 구현했을 때 왜 이렇게 작성하는지 이해가 가지 않는 부분이 있었다. - 그래서 내가 완벽히 이해하기 위해 분석한 내용을 공유한다. - 아래 글의 사진이 잘 안보이는 분들을 위해 PDF 파일을 제공합니다. 1. Bubble Sort a) 정렬과정 b) 코드 기반 개념 이해 c) 완성 코드 from typing import List def bubble_sort(case: List[int]) -> List[int]: for idx in range(len(case) - 1): for i in range(le.. 2021. 8. 30.
백준 2750 파이썬 - 수 정렬하기(버블정렬) 1. 문제 링크 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2. 나는 어떻게 생각했는가? - 이번 문제는 사실 간단한 풀이가 존재한다. - 하지만 풀기 간단한 만큼 버블정렬을 연습하기 좋은 문제다. - 버블정렬을 사용한다면, 다음과 같이 풀 수 있다. from typing import List from sys import stdin input = stdin.readline def bubble_sort (case: List[int]) -> List[.. 2021. 8. 23.
2. Array(배열) - Bubble Sort(버블정렬) 1. 버블정렬 - 가장 직관적이지만, 사용을 추천하지 않는 정렬 알고리즘 a) 버블이란? - 배열의 2개 요소를 묶은 단위를 의미한다. b) 버블 스왑(swap)이란? - 버블로 묶인 배열 요소 2개의 index 값을 서로 바꾸는 것을 말한다. array[1], array[2] = array[2], array[1] 2. 버블정렬의 동작방식 - 버블정렬은 배열의 요소를 정리하는 정렬 알고리즘 중 하나다. - 배열의 요소를 2개씩 비교해서, 서로의 위치(index)를 교환(swap)하여 정리하는 방식이다. a) 예제를 통한 버블정렬의 이해 - 위의 예제는 오름차순으로 배열의 요소를 정리하는 버블정렬이다. - 요소 2개씩 비교를 진행한다. - 요소의 크기를 비교하여 작은 수를 앞으로, 큰수를 뒤로 가도록 위치.. 2021. 8. 21.
Algorithm - 버블 정렬(Bubble Sort) 0. 알고리즘 연습 방법 - 연습장과 펜을 준비한다. - 알고리즘 문제를 읽고 분석 후 문제를 풀기 위한 순서를 생각한다. - 각 순서 또는 절차마다 구현할 알고리즘을 나누고 세부 항목을 나누어 적어본다. - 코드로 구현하기 위해 필요한 데이터 구조 또는 사용할 변수를 정리한다. - 각 문장을 코드 레벨로 적는다. - 코드의 흐름을 데이터 구조 또는 사용할 변수를 이용해 손으로 직접 적으면서 작동한다. 즉, 코드에 필요한 모든 순서/절차/흐름을 연습장에서 정리를 한 후 코드로 옮기기만 하는 것이다. 1. 정렬(Sort) 이란? - 데이터를 순서대로 나열하는 것 또는 어떤 규칙이나 기준을 기반으로 나열하는 것 a) 정렬을 알아야 하는 이유 - 정렬은 프로그램 작성 시 빈번하게 사용되는 가장 기본적인 알고리.. 2020. 9. 9.