본문 바로가기
728x90
728x90

파이썬9

파이썬을 이용한 정렬 알고리즘(버블, 선택, 삽입, 퀵) 오늘은 정렬 알고리즘을 들고 왔다!! 정렬 알고리즘에는 버블 정렬, 선택 정렬, 삽입 정렬, 퀵 정렬 이렇게 4가지의 종류가 있는데 각각 무엇을 나타내는지 따라 해 보자..! ● 정렬 알고리즘 버블 정렬 선택 정렬 삽입 정렬 퀵 정렬 # Swap Algorithm a=10 b=5 # a=b # b=a # c=a # a=b # b=c # print(a,b) a,b = b,a print(a,b) 5 10 1. 버블 정렬 서로 이웃하는 것끼리 비교 후 교환 """ 55 7 78 12 42 n=5 ---------------------- 7_ 55_ 78 12 42 7 55_ 78 12 42 7 55 12 78- 42 7 55 12 42_ 78_ ---------------------- 7_ 55_ 12 42 .. 2022. 6. 10.
파이썬을 이용한 검색 알고리즘2(해시) 검색 알고리즘에서 빠진 부분을 가져왔다! 이 부분도 놓치지 말고 따라 해 보자..! 1. 해시 검색법 기존 검색법의 단점 기존 검색법은 추가, 삭제가 어렵다 어떤 데이터가 어떤 요소에 저장되어있는지 모른다. 용어 정리 해시(Hash) : 임의 값을 고정길이로 변환하는 것 해시 테이블 : 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해시 함수 : key에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 해시 값 또는 해시 주소 : key를 해시 함수로 연산해서, 해시 값을 알아내고 , 이를 기반으로 해시 테이블에서 해당 key에 대한 데이터 위치를 일관성있게 찾을 수 있음 슬록(버켓) : 한 개의 데이터를 저장할 수 있는 공간 성능은 O(1)이지만 충돌이 발생할 경우 O(n)이 될 수 .. 2022. 6. 9.
파이썬을 이용한 검색 알고리즘(선형, 이진) 파이썬을 이용한 알고리즘 2탄이 왔다!! 이번에 소개할 알고리즘은 검색 알고리즘! 모두들 따라 해 보자. 검색 알고리즘 1. 선형 검색(Linear Search) 가장 단순하고 간단한 탐색 알고리즘으로 맨 앞이나, 맨 뒤부터 순서대로 하나하나 찾아보는 알고리즘. # 0(n) def findIndexLinear(array, cond): for i in range(len(array)): if(array[i] == cond): return i print(findIndexLinear([2,4,5,1,6],2)) print(findIndexLinear([2,4,5,1,6],6)) 0 4 2. 이진 검색(binary Search) 중간 위치 선택 : (첫번째 인덱스 + 마지막 인덱스) / 2 만약 짝수일 경우 소숫.. 2022. 6. 8.
파이썬을 이용한 알고리즘 요즘은 취업난에 코딩 테스트도 많고 정말 힘든 시기 인듯하다... 그래도 스스로 노력하고, 준비한다면 언젠가 기회는 찾아올 것이라 생각된다! 모두들 화이팅 하자는 의미로 몇 가지 알고리즘에 대해서 준비해보았다. 첫 번째 1부터 n까지의 합 구하기 합을 기록할 변수를 만들고 0을 저장 n을 1부터 1씩 증가하면서 반복 반복문 안에서 합을 기록할 변수에 1씩 증가된 값을 더함 반복이 끝나면 합을 출력 # O(n) def sum1(n): total = 0 for i in range(1, n+1): total += i return total # 시간측정 import time start_time = time.time() sum1(10000000) # 5050 end_time = time.time() print(".. 2022. 6. 7.
728x90
728x90