Python/Python Algorithm

    [python](알고리즘) quickSort 퀵정렬(랜덤 피봇) 구현

    [python](알고리즘) quickSort 퀵정렬(랜덤 피봇) 구현

    quickSort 구현 랜덤 피봇 방법(random pivot) import random def swap(array, i, j): #array[i] 값과 array[j] 값 swap 함수 tmp = array[i] array[i] = array[j] array[j] = tmp def quick_sort(array, start, end): #랜덤피봇의 퀵정렬 if start >= end: #원소가 1개인 경우 return else: p = partition(array, start, end) #기준 피봇 결정 quick_sort(array, start, p-1) #피봇기준 왼쪽 부분 재귀호출 quick_sort(array, p+1, end) #피봇기준 오른쪽 부분 재귀호출 return array def pa..

    [python](알고리즘) mergeSort 병합정렬(합병정렬) 구현

    [python](알고리즘) mergeSort 병합정렬(합병정렬) 구현

    Merge sort(합병정렬) 구현 코드 def merge_sort(list): if len(list)

    [python] factorial 함수, 재귀함수 구현

    [python] factorial 함수, 재귀함수 구현

    factorial 팩토리얼 함수 구현 팩토리얼 함수의 재귀함수버전 def factorial(num): #팩토리얼 함수 factor = 1 for i in range(1,num+1): factor *= i return factor def factorialRecursion(num): #팩토리얼 재귀함수 if num == 1: return 1 return num * factorialRecursion(num - 1) 실행 print(factorial(5)) print(factorialRecursion(5)) 결과 120 120

    [python] (알고리즘) binarySearch (이진탐색) 구현

    [python] (알고리즘) binarySearch (이진탐색) 구현

    binarySearch (이진탐색) 구현 코드 #이진탐색 data = [2, 11, 19, 27, 30, 31, 45, 121] n = int(input(&#39;검색할 데이터를 입력하세요: &#39;)) l = 0 #검색할 데이터 리스트의 첫번째 인덱스 h = len(data)-1 #검색할 데이터 리스트의 마지막 인덱스 count = 0 #검색 비교 횟수 isFlag = False #데이터 검색의 성공 여부 while(l data[m]: l = m + 1 elif n < data[m]: h = m - 1 #count 위치 유의 count += 1 # 비교횟수를 증가 print("{} 번 비교했습니다".format(count)) if isFlag: print("검색 완료!, 입력된 데이터 {}의 인덱스는..

    [python](자료구조) Queue class 구현

    [python](자료구조) Queue class 구현

    Queue 클래스 구현 중복된 값 enqueue 불가능 Stack의 size 값이 defuat 일 경우 5로 설정 overflow / underflow 주의 생성자 queue 리스트 생성 size 초기화 rear, front 초기화 enqueue() dequeue() view() 메소드 구현 class Queue: def __init__(self, size = 5): self.queue = [] #큐를 리스트로 구현 self.size = size #큐의 사이즈 self.front = 0 #큐의 앞쪽 포인터 self.rear = 0 #큐의 뒤쪽 포인터 def enqueue(self, data): if data in self.queue: #중복된 값 방지 print("{} 값은 이미 큐에 있는 데이터입니다...

    [python](자료구조) stack class 구현

    [python](자료구조) stack class 구현

    Stack 클래스 구현 중복된 값 push 불가능 Stack의 size 값이 default 일 경우 5로 설정 overflow / underflow 주의 생성자 stack 리스트 생성 size 초기화 top SP(Stack Pointer) 초기화 push() pop() view() 메소드 구현 class Stack: def __init__(self, size = 5): self.stack = [] #stack 리스트 생성 self.size = size #stack 의사이즈 self.top = 0 #SP(Stack Pointer) stack에 저장되는 데이터의 개수 def push(self,data): if data in self.stack: print("{} 값은 중복된 데이터입니다.".format(da..