알고리즘은 단계별 절차 을 정의하는 설정 명령을 실행 특정 순서 원하는 출력을 얻을. 알고리즘은 일반적으로 기본 언어와 독립적으로 생성되며,즉 알고리즘은 둘 이상의 프로그래밍 언어로 구현 될 수 있습니다.,
에서는 데이터 구조의 관점,다음은 몇 가지 중요한 종류의 알고리즘−
-
검색−알고리즘을 검색 항목에 대한 데이터 구조입니다.
-
정렬−특정 순서로 항목을 정렬하는 알고리즘.
-
삽입−데이터 구조에 항목을 삽입하는 알고리즘.
-
업데이트-데이터 구조의 기존 항목을 업데이트하는 알고리즘.
-
삭제-데이터 구조에서 기존 항목을 삭제하는 알고리즘.
알고리즘의 특성
모든 절차를 알고리즘이라고 부를 수는 없습니다., 알고리즘은 다음과 같은 특성을 가져야합니다−
-
모호하지 않음−알고리즘은 명확하고 모호하지 않아야합니다. 각각의 단계(또는 단계)와 입력/출력은 명확해야하며 단 하나의 의미로 이어져야합니다.
-
입력−알고리즘은 0 개 이상의 잘 정의 된 입력을 가져야합니다.
-
출력−알고리즘은 1 개 이상의 잘 정의 된 출력을 가져야하며 원하는 출력과 일치해야합니다.
-
Finiteness−알고리즘은 유한 한 수의 단계 후에 종료해야합니다.,
-
타당성-사용 가능한 자원으로 실현 가능해야합니다.
-
독립−알고리즘은 모든 프로그래밍 코드와 독립적이어야하는 단계별 방향을 가져야합니다.알고리즘을 작성하는 방법은 무엇입니까?
알고리즘을 작성하기위한 잘 정의 된 표준이 없습니다. 오히려 문제와 자원에 따라 다릅니다. 알고리즘은 특정 프로그래밍 코드를 지원하도록 작성되지 않습니다.
우리는 모든 프로그래밍 언어가 루프(do,for,while),흐름 제어(if-else)등과 같은 기본 코드 구조를 공유한다는 것을 알고 있습니다., 이러한 일반적인 구조는 알고리즘을 작성하는 데 사용될 수있다.
우리는 단계별 방식으로 알고리즘을 작성하지만 항상 그런 것은 아닙니다. 알고리즘 작성은 프로세스이며 문제 도메인이 잘 정의 된 후에 실행됩니다. 즉,우리는 솔루션을 설계하고있는 문제 도메인을 알아야합니다.예제를 사용하여 알고리즘 작성을 배우려고합니다.
문제-두 개의 숫자를 더하고 결과를 표시하는 알고리즘을 설계하십시오.
Step 1 − STARTStep 2 − declare three integers a, b & cStep 3 − define values of a & bStep 4 − add values of a & bStep 5 − store output of step 4 to cStep 6 − print cStep 7 − STOP
알고리즘은 프로그래머에게 프로그램을 코딩하는 방법을 알려줍니다., 또한,알고리즘을 작성할 수 있습으로−
Step 1 − START ADDStep 2 − get values of a & bStep 3 − c ← a + bStep 4 − display cStep 5 − STOP
에서 알고리즘 설계와 해석,일반적으로 두번째 방법을 사용하여 설명하는 알고리즘이 있습니다. 분석가가 원치 않는 모든 정의를 무시한 알고리즘을 쉽게 분석 할 수있게 해줍니다. 그는 어떤 작업이 사용되고 있는지,그리고 프로세스가 어떻게 흐르고 있는지 관찰 할 수 있습니다.
단계 번호를 쓰는 것은 선택 사항입니다.주어진 문제의 해결책을 얻기 위해 알고리즘을 설계합니다. 문제는 하나 이상의 방법으로 해결 될 수있다.,
따라서 주어진 문제에 대해 많은 솔루션 알고리즘을 도출 할 수 있습니다. 다음 단계는 제안 된 솔루션 알고리즘을 분석하고 가장 적합한 솔루션을 구현하는 것입니다.
알고리즘 분석
알고리즘의 효율성은 구현 전과 구현 후 두 가지 다른 단계에서 분석 할 수 있습니다. 그들은 다음과 같습니다-
-
선험적 분석−이것은 알고리즘의 이론적 분석입니다., 의 효율성 알고리즘에 의해 측정되고 가정하면 다른 모든 요소 예를 들어,프로세서 속도가 일정과에 미치는 영향이 없을 구현합니다.이것은 알고리즘의 경험적 분석입니다. 선택한 알고리즘은 프로그래밍 언어를 사용하여 구현됩니다. 그런 다음 대상 컴퓨터 컴퓨터에서 실행됩니다. 이 분석에서는 실행 시간 및 필요한 공간과 같은 실제 통계가 수집됩니다.
우리는 선험적 알고리즘 분석에 대해 알아야한다., 알고리즘 분석은 관련된 다양한 작업의 실행 또는 실행 시간을 다룹니다. 작업의 실행 시간은 작업 당 실행되는 컴퓨터 명령어 수로 정의 할 수 있습니다.
알고리즘의 복잡성
가 X 는 알고리즘은 크기의 입력 데이터,시간 및 공간을 사용하는 알고리즘 X 는 두 가지 주요 요소는 결정의 효율성 X.
-
간 요소간은 측정의 수를 계산하여 키과 같은 작업으로 비교에서 정렬 알고리즘이 있습니다.,
-
공간 요소 공간을 계산하여 측정 최대 메모리 공간에 필요한 알고리즘이 있습니다.
의 복잡도 알고리즘 f(n)을 제공하는 실행 시간 그리고/또는 저장 공간에 필요한 알고리즘 측면에서의 n 크기의 입력 데이터입니다.
공간 복잡성
알고리즘의 공간 복잡도는 수명주기에서 알고리즘에 필요한 메모리 공간의 양을 나타냅니다., 필요한 공간으로는 알고리즘과 같은 다음과 같은 두 가지 구성 요소
-
고정된 부분이 있는 공간을 저장하는 데 필요한 특정 데이터 및 변수를 독립적인 크기는 문제입니다. 예를 들어 사용 된 간단한 변수와 상수,프로그램 크기 등이 있습니다.
-
가변 부분은 공간에 필요한 변수,그 크기에 따라 달라의 크기는 문제입니다. 예를 들어 동적 메모리 할당,재귀 스택 공간 등이 있습니다.,
공간 복잡 S(P)의 알고리즘 P S(P)=C&플러스;SP(I),C 는 일부를 수정 및 S(I)은 변하기 쉬운 부분의 알고리즘 에 따라 인스턴스의 특성 I. 다음과 같은 간단한 예제는 설명하려고하는 개념
Algorithm: SUM(A, B)Step 1 - STARTStep 2 - C ← A + B + 10Step 3 - Stop
여기서 우리는 세 가지 변수 A,B,C 및 중 하나는 상수입니다. 따라서 S(P)=1+3. 이제 공간은 주어진 변수의 데이터 유형과 상수 유형에 따라 달라지며 그에 따라 곱해질 것입니다.,
시간 복잡성
알고리즘의 시간 복잡도는 알고리즘이 완료까지 실행하는 데 필요한 시간을 나타냅니다. 시간 요구 사항은 수치 함수 T(n)로 정의 할 수 있으며,여기서 t(n)는 각 단계가 일정한 시간을 소비하면 단계 수로 측정 할 수 있습니다.
예를 들어,두 개의 n 비트 정수의 추가는 n 단계를 취합니다. 결과적으로 총 계산 시간은 T(n)=c∗n 이며,여기서 c 는 두 비트의 첨가에 걸리는 시간입니다. 여기서 우리는 입력 크기가 증가함에 따라 t(n)가 선형 적으로 증가한다는 것을 관찰합니다.,
광고 -