전공정리/알고리즘 13

[알고리즘] 기초 정렬 알고리즘

선택 정렬 알고리즘 단순한 정렬 시리즈 중 하나 n개짜리 배열에서 시작하여 아직 정렬되지 않은 배열의 크기를 하나씩 줄임 특정 숫자(최대.최소)를 선택하는 방식으로 정렬을 진행 각 Loop마다 남아있는 원소 중, 최대 원소 선택 ==최대 원소와 맨 오른쪽 원소를 교환한다(오른쪽)== 하나의 원소만 남을 때까지 위의 Loop를 반복 제자리 정렬 알고리즘 입력 배열 이외에 다른 추가 메모리를 요구하지 않음 시간 복잡도 O(n^2) def Sel_sort(a): n = len(a) for i in range(0, n-1): idx = i for j in range(i+1, n): if a[j] < a[idx]: idx = j a[i], a[idx] = a[idx], a[i] print(a) Sel_sort([..

[알고리즘] 파이썬 기초

문제 1 ) 10개의 수를 입력받아 리스트(list)에 저장하시오. 리스트의 원소를 역순(reverse)으로 출력하시오 10개의 수 중 최댓값을 찾고 최댓값의 위치(인덱스)를 출력하시오 #10개 숫자 입력 및 리스트로 생성 num_list = list(map(int, input().split())) print(" list :", num_list) #10개 숫자 역순으로 출력 reverse_list=num_list[::-1] print("reverse :",reverse_list) #최댓값 및 인덱스 출력 count=0 for num in num_list: if count < num: count = num for num_index in range(0,len(num_list)): if num_list[num..

[알고리즘] 알고리즘 설계와 분석의 기초

정의 문제를 해결하는 단계적 절차 또는 방법 입력이 주어지고, 수행 결과를 출력 해야 할 작업 명확하게 명시 필요 특성 정확성 : 주어진 입력에 대해 올바른 해를 주어야 함 수행성 : 알고리즘의 각 단계는 컴퓨터에서 수행이 가능해야 함. 유한성 : 알고리즘은 일정 시간 내에 종료되어야 함. 효율성 : 알고리즘은 효율적일수록 그 가치가 높아짐. 표현 방법 흐름도 의사코드 프로그래밍 언어로 된 진짜 코드와 유사하게 표현되지만, 문법적 오류를 크게 신경 쓰지 않음 언어 종속성이 없는 표현 방식 효율성 알고리즘의 수행 시간 또는 알고리즘이 수행되는 동안 사용되는 메모리 공간의 크기 시간 복잡도 실행 시간은 실행환경(하드웨어, 운영체제, 언어, 컴파일러)에 따라 달라짐 실행 시간 측정 대신, 단위 연산 횟수 측정..