본문 바로가기

Algorithm3

[알고리즘] 퀵 정렬(Quick Sort) 정리 및 예제 해당 포스팅은 'Hello Coding 그림으로 개념을 이해하는 알고리즘' 도서를 개인공부하면서 정리한 내용입니다. 소스코드는 도서, 깃허브, 출판사 제공파일을 참고하였습니다. 깃허브 링크는 하단에 남겨두었습니다. | 문제 배열을 퀵 정렬을 이용하여 오름차순으로 정렬하라. | 해결 1.pivot 기준값 설정 2.두개의 하위 배열로 분할 -배열을 기준 원소보다 작은 원소의 배열, 기준원소보다 큰 원소의 배열 3.하위 배열을 재귀적으로 퀵정렬 함수 호출 | 퀵정렬에 필요한 개념 및 주의점 1.리스트 병합 +, extend(), sum() 중 여기서는 +를 이용한 병합을 진행. return quicksort(less) + [pivot] + quicksort(greater) 이때 pivot은 pivot = ar.. 2022. 1. 6.
[알고리즘] 선택정렬 (Selection Sort) 정리 및 예제 | 문제 배열을 작은 정수에서 큰 정수 순서로 정렬하는 코드입니다. | 해결 방법 1. findSmallest(): 배열에서 가장 작은 원소를 찾는 함수를 구현한다. (여기서 정렬하지 않는다.) 2. selectionSort(): 새 배열에 가장 작은 원소를 추가하는 정렬 함수를 구현한다. (여기서 정렬을 한다.) 주의할 점 findSmallest() 메소드 for i in range(1, len(arr)): 범위 1~ (arr크기-1) (1)range()의 매개변수에는 정수 타입만 올 수 있다. -range(arr) 타입이 맞지 않아 TypeError발생 -TypeError: 'list' object cannot be interpreted as an integer (2)(1, len(arr))에서 1로.. 2022. 1. 5.
[알고리즘] CH01. 알고리즘 의미 및 순서도의 개념, 종류, 기호, 기본형 Icons made by phatplus from www.flaticon.com [0] 알고리즘이란? 1. 정의 -문제해결의 절차를 위한 명세서 -전체적인 문제해결을 위한 설계도 -설계도는 문제해결을 위한 첫번째 단계부터 마지막 단계까지 모든 순서가 연결되어있는 명세서. -명세서를 한눈에 알아 볼 수 있도록 한 것이 순서도 2. 자료구조와 알고리즘 관계 자료구조를 만드는 과정은 알고리즘의 일부이다. 자료구조를 어떻게 짜느냐에 따라 알고리즘의 설계도가 달라진다. 3. 예시 알고리즘을 위와 같이 말(문장), 코드(Code), 순서도로 작성할 수 도 있다. C언어로 코드를 검증해보자 [1] 순서도의 개념 1. 알고리즘 (1) 의미 프로그램을 작성하기 전에 전체적인 설계도를 그려보는 행위 (2) 표현방법 일상 .. 2021. 3. 2.