데이터 구조 및 알고리즘 소개 | 000
2229 단어 pythonalgorithms
작성된 코드는 Python
왜 DSA인가?
DSA를 배우는 주요 모토는 최적화된 코드를 작성하는 방법을 아는 것입니다. 이 Cloud Functions 시대에 최적화된 코드는 서버에서 사용되는 계산 및 메모리가 적기 때문에 비용이 적게 듭니다. 반면에 최적화된 코드를 작성하지 않으면 더 많은 비용을 지불해야 하고 클라우드 서버의 결과도 매우 느립니다.
심사 코드
이제 최적화된 코드를 작성하면 시간이 절약된다는 것을 알게 되었습니다. 그러나 코드가 최적화되었는지 여부를 어떻게 판단합니까?
많은 사람들은 줄 수가 적을수록 코드가 최적화된다는 것을 의미합니다. 그러나 이것은 진정한 거짓말입니다. 최적화된 코드는 줄 수로 판단할 수 없고 코드에 포함된 매개변수로 판단할 수 있습니다. 이 사건을 판단하십시오:
문제 설명: 1에서 n까지 일련의 숫자를 생성하고 나중에 액세스할 수 있도록 변수 또는 함수에 저장
코드 1:
def gen_series():
a = []
n = int(input("What's n? "))
for i in range(1, n+1):
a.append(i)
return a
def print_series():
a = gen_series()
for i in a:
print(i)
if __name__ == "__main__":
print_series()
코드 2:
def gen_series():
n = int(input("What's n? "))
a = series(n)
print(a)
return a
def print_series():
a = gen_series()
for i in a:
print(i)
def series(n):
d = 11
for i in range(1, n+1):
yield i + d
d += 11
if __name__ == "__main__":
print_series()
라인 수를 세어보면 Code 1이 더 최적화되어 있다고 하겠지만 과연 그럴까요?
두 경우 모두 시리즈가 생성되어
gen_series()
라는 함수 내에 저장됩니다. 파이썬의 sys.getsizeof()
메소드에 대해 알고 있다면 변수, function 내부에서 사용되는 메모리를 제공한다는 것을 알 수 있습니다. 코드 편집기에서 이것을 작성하는 경우 프로그램을 실행하고 What's n?
의 입력으로 200을 입력하십시오.import sys
def gen_series():
a = []
n = int(input("What's n? "))
for i in range(1, n+1):
a.append(i)
return a
def print_series():
a = gen_series()
for i in a:
print(i)
if __name__ == "__main__":
print(sys.getsizeof(gen_series()))
바이트 단위로 사용된 메모리를 얻을 수 있습니다. 그리고 놀랍게도 두 번째 코드가 더 적은 메모리를 사용한다는 것을 알게 될 것입니다.
따라서 적은 코드가 항상 최적화된 코드를 의미하지는 않는다는 결론에 도달할 수 있습니다. 코드를 판단하려면 매개변수가 중요합니다.
프로그래밍 언어
DSA는 대부분 프로그래밍 언어와 독립적이며 중요한 것은 개념입니다. DSA에 관한 다음 기사에서 Python을 사용하겠습니다.
Reference
이 문제에 관하여(데이터 구조 및 알고리즘 소개 | 000), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/snehendu_roy_/introduction-to-data-structures-and-algorithms-000-3hk6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)