본문 바로가기
반응형

Computer Science/Algorithm21

[알고리즘 algorithm] 정렬 sort 종류와 예제 코드(버블 정렬, 선택 정렬, 삽입 정렬, 병합 정렬, 퀵 정렬, 안정 정렬, 불안정 정렬, 계수 정렬) 1. 가장 비효율적인 정렬, 버블 정렬(Bubble Sort) 시간복잡도: O(n2) def bubble(a): n = len(a) for _ in range(n-1): for i in range(n-1): if a[i] > a[i+1]: a[i], a[i+1] = a[i+1], a[i] 2. 제자리 정렬, 선택 정렬(Selection Sort) 시간복잡도 : O(n2) def selection(a): n = len(a) for i in range(n-1): min_idx = i for j in range(i+1, n): if a[min_idx] > a[j]: min_idx = j a[i], a[min_idx] = a[min_idx], a[i] 3. 제자리 정렬, 삽입 정렬(Insert Sort) 시간복.. 2021. 4. 14.
[알고리즘 algorithm] 다익스트라 알고리즘- 파이썬 코드와 예제 최단 경로 문제를 푸는 알고리즘으로 가장 잘 알려진 다익스트라 알고리즘을 파이썬 코드로 작성하면 다음과 같다. 기본 문제 : leetcode.com/problems/network-delay-time/ Network Delay Time - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com class Solution: def networkDelayTime(self, times: List[List[int]], n: int, k: int) -> int: graph = co.. 2021. 4. 9.
2의 보수란?? 쉬운 설명으로 궁금증 해결.. (비트 연산) 2의 보수: 컴퓨터가 음수를 저장하기 위해 사용하는 방법 중 하나. 예를 들어 4비트 머신을 생각해보자. 이 머신은 0000부터 1111부터 표현이 가능하다. 총 16개. 양수만을 저장하고싶다면 숫자 0부터 15까지 차례대로 대응시켜 저장할 수 있겠지만, 문제는 음수도 저장이 필요하다는 점! 그래서 16개 중 절반을 음수를 위해 할당한다. 따라서 -8부터 7까지의 숫자를 저장하게 된다. 그리고 맨 앞의 비트는 부호 비트로 사용한다. 맨 앞의 비트가 0이면 양수고 1이면 음수. 십진수 2진수 십진수 2진수 -8 1000 0 0000 -7 1001 1 0001 -6 1010 2 0010 -5 1011 3 0011 -4 1100 4 0100 -3 1101 5 0101 -2 1110 6 0110 -1 1111 .. 2021. 3. 17.
반응형