반응형
반응형
""" 
정렬 알고리즘 실행 시 비용 계산은 보통 실행 시간(시간 복잡도)이나 작업 횟수를 측정하여 이뤄집니다. 

이를 위해 Python에서 time 모듈이나 timeit 모듈을 사용할 수 있습니다. 

시간 복잡도에 따른 차이

1.퀵 정렬:
    평균 시간 복잡도 𝑂(𝑛log⁡𝑛)O(nlogn).
    큰 데이터셋에서도 효율적으로 작동.

2.버블 정렬:
    최악 및 평균 시간 복잡도 𝑂(𝑛2)O(n 2 ).
    작은 데이터셋에서는 괜찮지만, 데이터 크기가 클수록 비효율적.
    
"""
import time  # 실행 시간 측정을 위한 모듈

# 퀵 정렬 알고리즘
def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)

# 버블 정렬 알고리즘
def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n - i - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr

# 테스트 데이터 생성
import random
array_size = 1000  # 데이터 크기
test_array = random.sample(range(1, 10000), array_size)


print(f" test_array : {test_array} \n\n\n")

# 퀵 정렬 실행 시간 측정
start_time = time.time()
quick_sort(test_array.copy())
end_time = time.time()
print(f"퀵 정렬 실행 시간: {end_time - start_time:.5f}초")

# 버블 정렬 실행 시간 측정
start_time = time.time()
bubble_sort(test_array.copy())
end_time = time.time()
print(f"버블 정렬 실행 시간: {end_time - start_time:.5f}초")


# 병합 정렬 알고리즘
def merge_sort(arr):
    if len(arr) <= 1:
        return arr
    mid = len(arr) // 2
    left = merge_sort(arr[:mid])
    right = merge_sort(arr[mid:])
    return merge(left, right)

def merge(left, right):
    result = []
    i = j = 0
    while i < len(left) and j < len(right):
        if left[i] < right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1
    result.extend(left[i:])
    result.extend(right[j:])
    return result

# 병합 정렬 실행 시간 측정
start_time = time.time()
merge_sort(test_array.copy())
end_time = time.time()
print(f"병합 정렬 실행 시간: {end_time - start_time:.5f}초")

[python] 정렬 알고리즘 실행 시 비용 계산은 보통 실행 시간(시간 복잡도)이나 작업 횟수를 측정

 

 

 

반응형
반응형

처음 장사를 해 보지만
이곳에서 배운 것이 몇 가지 있다.
남들보다 먼저 문을 열고
남들보다 늦게 문을 닫으면
망할 일은 없는 것이 장사 같다.
장사는 이문을 남기는 것보다
사람을 남겨야 한다.


- 최요한의《시를 쓰고 커피를 볶는 것은 운명이 아닐까요?》중에서 -


* 장사든 뭐든
성공 비결은 단순한 것에 있습니다.
부지런함입니다. 한 발 먼저, 한 번 더 챙기면
적어도 망할 일은 없습니다. 그러나 중요한 것은
그 '목적'에 있습니다. 이문을 남기는 것이야말로
장사의 기본이지만 궁극의 목표가 돈이 아니라
사람이어야 한다는 신념으로 할 때 더 큰 성공,
더 의미 있는 성공을 거둘 수 있습니다.

반응형

'아침편지' 카테고리의 다른 글

산책이 사람을 똑똑하게 만든다  (0) 2025.01.17
가장 적대적인 요소  (0) 2025.01.16
달맞이꽃  (0) 2025.01.14
부끄러움  (0) 2025.01.13
힘(力)  (0) 2025.01.13
반응형

[🔴속보] "윤석열 대통령, 곧 관저 나올 듯"…3차 저지선 정문 열려 / YTN https://www.youtube.com/watch?v=Q5T8LWgDDc0

반응형
반응형

달맞이꽃은
밤에 꽃을 피우는 잡초다.
달맞이꽃은 약용으로는 '대소초'라 불리며,
'월견초'라는 이름으로도 잘 알려져 있다.
독일어로는 '나흐트케르체Nachtkerze'인데,
이것은 '밤의 양초'라는 뜻이다.
이 이름대로 달맞이꽃은
어두운 밤일 수록 더욱
선명하게 드러난다.


- 이나가키 히데히로의 《잡초들의 전략》 중에서 -


* 밤에 피는 꽃,
달이 뜨면 더 선명하고 아름다운 꽃,
캄캄한 어둠을 배경으로 피어난 달맞이꽃의
노랑은 그 자체로 호롱불이고 반딧불입니다.
해를 바라보듯 피어나 해바라기인 것처럼
달을 맞이하듯 피어나 달맞이꽃인 것인가.
달빛이 총총총 다가오는 듯합니다.

반응형

'아침편지' 카테고리의 다른 글

가장 적대적인 요소  (0) 2025.01.16
사람을 남기는 장사  (0) 2025.01.15
부끄러움  (0) 2025.01.13
힘(力)  (0) 2025.01.13
차를 마시며 '나'로 향한다  (0) 2025.01.10
반응형

부끄러움을 아는 것은
사람에게 아주 중요하다.
교묘하게 기교나 재주를 부리는 자들은
수치심을 쓸 줄 모른다. 부끄러워할 줄
모르는 점이 남과 같지 않은데,
어떻게 남과 같을 수
있겠는가?


- 조윤제의 《신독, 혼자 있는 시간의 힘》 중에서 -


* 맹자는 '수오지심'(羞惡之心)을 말했습니다.
자신의 옳지 못함을 부끄러워하고, 남의 옳지 못함을
미워하는 마음입니다. 한마디로 올바름에서 벗어난 것을
부끄러워하는 마음입니다. 무엇이 바르고 의로운 것인지
분별하고, 의롭지 않은 것을 경계하고 부끄러워할 줄
아는 것, 이것이야말로 오늘의 우리에게
가장 절실한 덕목일듯 싶습니다.

반응형

'아침편지' 카테고리의 다른 글

사람을 남기는 장사  (0) 2025.01.15
달맞이꽃  (0) 2025.01.14
힘(力)  (0) 2025.01.13
차를 마시며 '나'로 향한다  (0) 2025.01.10
잠을 자려고 '애쓰지 않기'  (0) 2025.01.09
반응형

힘(力)

위대하고 위험하다

반응형

'아침편지' 카테고리의 다른 글

달맞이꽃  (0) 2025.01.14
부끄러움  (0) 2025.01.13
차를 마시며 '나'로 향한다  (0) 2025.01.10
잠을 자려고 '애쓰지 않기'  (0) 2025.01.09
역사의 신(神)  (0) 2025.01.08

+ Recent posts