알고리즘과 레시피 & 반에서 가장 키큰 사람 찾기 (선형알고리즘)

·2022년 5월 30일
0
post-custom-banner
  • 1일 1로그 100일 완성 IT지식 - Understanding the Digital Word

- 소프트 웨어 -

컴퓨터는 어떤 계산이라도 수행할 수 있는 범용 기계
명령어를 빨리 처리할 수 있고 자신의 동작을 대부분 제어할 수 있다.

명렁어 지정(해야할 일을 수동으로 지정)

소프트웨어는 하드웨어보다 저렴하고 유연하고 바꾸기 쉬움. 예를 들어 전자식 주행 안정 제어

소프트웨어가 차지하는 비중이 점점 더 커지고 있지만 단점 또한 존재함.

보잉737 조정특성증강시스템(MCAS) 자동화된 비행 제어 소프트웨어 - 조종사 재훈련 없이 비용절감을 위해서 사용. 결국 시스템 오작동으로 인해 비행기 추락사고로 이어짐

자동차 주행 보조 기술 예를 들어 방향 지시등 켜지 않고 차선 변경시 경고음 알림. 하지만 오작동도 됨

전 세계의 금융 시스템은 컴퓨터에 의존하지만 사이버 전쟁과 사이버 스파이 활동 등 위협적인 요인 존재(2010년 스턱스넷 웜 공격), (랜섬웨어)

소프트웨어 오작동을 없애기 위해 완벽에 가까운 알고리즘이 필요


  • 알고리즘과 초콜릿 케이크 레시피

    소프트웨어를 설명할 때 음식을 만드는 레시피에 자주 비유됨. 예를 들어 조리 순서(라면 끓이는 법) 하지만 정확한 비유는 어려움

    납세 신고서에 비유하는 것이 더 적절

    일련의 데이터(값)을 넣고 나중에 계산 되는 형식

    알고리즘은 정확하고 명료하게 작성된 납세신고서의 컴퓨터 버전. 결과를 정확하게 계산하도록 보장된 일련의 단계
    연산의 의미와 수행방법에 상세하고 정확하게 일련의 연산을 명시해야 함

  • 반에서 가장 키 큰 사람 찾기 (선형 알고리즘)

    현실에선 키를 조사하고 가장 키 큰 사람과 다음 사람으로 계속하여 비교. 하지만 동일한 키가 나올 시 문제가 발생 이를 해결하기위해 자료구조(Data Structure) 필요.

    전체 키의 평균

    sum = 0
    arr = [180, 175, 165, 160, 180]
    for i in arr:
    	sum += i
    sum = sum / len(arr)

    알고리즘에서 중요한 특성 하나는 얼마나 효율적으로 작동하는가 빠른가 느린가 데이터를 처리하는 데 시간 소요
    만약 키의 데이터가 10배라면 10배의 시간의 더 소요
    계산 시간이 데이터의 양의 정비례 혹은 선형적으로 비례할 때
    그 알고리즘은 선형시간(Liner-Time) 혹은 선형(LIner)

    연산에 소요되는 시간은 항목 수와 비례됨

profile
Life is a natural-nine
post-custom-banner

0개의 댓글