학습 내용 정리/Algorithm (3) 썸네일형 리스트형 퀵 정렬 (Java7 이후 Arrays.sort()메서드의 Dual Pivot Quick Sort) 퀵 정렬(Quick Sort) 피봇(Pivot)을 선택해 피봇보다 작은 그룹과 큰 그룹으로 나누는 작업을 반복하여 정렬하는 방식 장점 기준값에 의한 분할을 통해서 구현하는 정렬법으로써, 분할 과정에서 logN 이라는 시간이 걸리게되고 전체적으로 보게 되면 평균 NlogN 으로써 실행시간이 준수한 편이다. 단점 기준값(Pivot)에 따라서 시간복잡도가 크게 달라진다. Pivot이 적당하게 이상적인 값을 선택했다면 NlogN의 시간복잡도를 갖지만, 최악으로 Pivot을 선택할 경우 O(N^2)이라는 시간복잡도를 갖게 된다. Java의 Arrays.sort() 메서드는 기본적으로 Dual-Pivot Quicksort 알고리즘을 사용합니다. 이는 Java 7 이후 버전부터 도입되었습니다. 그러나 Java 7 이.. 스파르타 코딩클럽 알고보면 알기 쉬운 알고리즘 2주차 1. 배열과 링크드 리스트 Python의 list : 링크드 리스트로 쓸 수도 있고, 배열로도 쓸 수 있게 만든 효율적인 자료구조 배열의 길이가 늘어나도 O(1) 의 시간 복잡도가 걸리도록 동적 배열 설계 2. 클래스 클래스 : 분류 객체 : 세상에 존재하는 유일무이한 사물 class Person: pass # 여기서 pass 는 안에 아무런 내용이 없다는 의미입니다! person_1 = Person() print(person_1) # person_2 = Person() print(person_2) # 생성자 : 객체를 생성할 때 데이터 넣어주기 내부적으로 원하는 행동 실행 (python에서 생성자 함수는 무조건 __init__) self : 객체 자기 자신 method(메소드) : 클래스 내부의 함수 .. 스파르타 코딩클럽 알고보면 알기 쉬운 알고리즘 1주차 사용 언어 : Python 1. 최댓값 구하기 array는 숫자가 담긴 배열 나의 코드: array가 음수로 이루어진 배열일 때 성립하지 않는다. maxnum = array[0] 으로 고칠 수 있다. def find_max_num(array): maxnum = 0 for i in array: if maxnum < i: maxnum = i return maxnum 튜터 님의 코드 : def find_max_num(array): for num in array: for compare_num in array: if num < compare_num: break else: return num print("정답 = 6 / 현재 풀이 값 = ", find_max_num([3, 5, 6, 1, 2, 4])) print(.. 이전 1 다음