역사와 알고리즘에 대한 (Algorithms)

1. 역사 알고리즘

기원 의 이용 후기 , 그는 말했다, 알고리즘 자체가 이상한 역사를 가지고 있다. 언어학 낱말 의원점 을 발견 하려고 하지만,결과는 만족스럽지 못하다 . 마지막으로, 단어 의 기원 을 찾을 수있는 수학의 역사 는 유명한 저자, 아부 Ja'far 무하마드 이븐 무사 알 - Khuwarizmi 의 아랍어 이름 에서 비롯됩니다. 알 - Khuwarizmi 는기수법 을 읽어보십시오.

알 - Khuwarizmi 는 " 책 의 복원 및 감소 "( 복원 및 감소의 책 )을 의미 Kitab 알 자바 르 월마트 Muqabala 라는 책을 쓰기 . 책의 제목 에서 우리 는 루트 단어 " 대수학 "( 대수 )를 얻을 . 그래서 접미사 - CM- THM 을 변경 , 단어 는 종종 연산 과 혼동 될 때 알고리즘이 표시 기수법 의 기수법 에서 단어 를 변경합니다. 아라비아 숫자 와계산은 당연한 일 이되었습니다 때문에 , 조만간 단어 점차 알고리즘은 일반적인 계산 방법 ( 계산 ) 으로 사용 한다, 이렇게 단어 의 원래 의미의 손실 . 하사 인도네시아 에서,워드 알고리즘은알고리즘에 흡수된다.

2. 알고리즘 의 정의

" 이 알고리즘은 체계적이고 논리적 으로 구성되며 문제 해결 의 논리적 인 일련의 단계 입니다 ." 논리 단어가 알고리즘 키워드입니다. 알고리즘 의 단계는 논리적 이어야하며, 옳고 그름 값을 결정 할 수 있어야한다. 일부 상황에서 ,알고리즘은특정 작업 을 수행하기 위해 지정 단계 의시퀀스이다 . 선택 알고리즘 에서 고려 사항 은 , 먼저 , 알고리즘 이 충족되어야 한다. 이알고리즘은 입력 의 주어진 양 에서 원하는 출력을 제공 한다는 것을 의미합니다. 어떤 알고리즘으로 좋은 상관없이, 잘못된 출력을 제공 하는 경우 , 이 알고리즘은 확실히 좋은 알고리즘 이 아니다.

주목해야한다 두 번째 고려 사항은 우리가 결과가 알고리즘에 의해 달성 하는 방법을 잘 볼 수 있다는 것입니다. 이것은 ( 단지접근 수율 임)근사 결과를 필요로하는 문제 를 해결하기 위하여 , 특히 알고리즘 에 중요하다. 알고리즘은실제 값 에 최대한 가까운 좋은 결과를 제공 할 수 있어야한다.

셋째알고리즘의효율 이다 . 알고리즘의 효율성 은 두 가지 , 즉 시간과 메모리 ​​효율성 에서 볼 수있다. 알고리즘이 올바른 출력 (접근 )을 제공하지만, 우리는 출력을 얻을 수 시간 동안 기다려야했다 경우 ,알고리즘은 일반적으로 착용하지 것이지만 , 모두가 빠른 릴리스를 원한다. 마찬가지로,메모리 , 사용메모리 ,알고리즘의더 나쁜 . 사실, 어떤 사람은정렬 알고리즘 에 차이 가 있지만 , 물론 우리가동일한 출력 이 필요한 경우,문제를 해결 하기 위해다른 알고리즘을 만들 수있다 . 이 경우 , 가장 효율적인 알고리즘과 빠른 찾는다.

3. 알고리즘 및 프로그램

프로그램의 체계적인 방법과 단계 알고리즘 반면 이 프로그램은 컴퓨터 의 문 그룹입니다. 프로그램 은 프로그래밍 언어를 사용하여 작성 . 그래서프로그램은 프로그래밍 언어 의구현 이라고 할 수있다 . 일부 전문가 는 수식을 제공합니다 :


프로그램 = 알고리즘 + 언어 ( 데이터 구조 )

그러나, 데이터 구조 와 알고리즘 은 매우 밀접하게관련 프로그램 된다. 정확한 데이터 구조 없이 좋은 선택 알고리즘은 덜 좋은 프로그램 , 그래서 도 반대 합니다 .

제조 알고리즘 등 많은 장점이 있습니다 :
1). 제조 또는 이벤트 알고리즘은 모든 프로그래밍 언어 에 의존하지 않는 , 즉, 프로그래밍 언어 및 컴퓨터 구현알고리즘 독립 이벤트 를 의미한다.
2). 표기 알고리즘은 서로 다른 프로그래밍 언어로 번역 할 수 있습니다.
3). 같은 알고리즘 에 대해 동일한 결과를 발표 할 어떤 언어 프로그램 .

알고리즘을 만드는 몇 가지주의 할 사항 :
1. 알고리즘의 텍스트 설명 은 문제 해결 단계가 포함되어 있습니다. 설명 은 표기법으로 쓸 수있는 , 가장 중요한 이해하고 이해 하기 쉬운 수 있습니다.

2. 같은 프로그래밍 언어 의 표기법 과 같은 텍스트 알고리즘 에 표준 표기법 이 없습니다. 알고리즘 표기 라는 알고리즘에 사용 된 표기법을 작성합니다.

3. 모두가 쓰기 규칙과 알고리즘 표기 자체를 할 수 있습니다. 알고리즘은프로그램의텍스트와 같은 텍스트 가 없기 때문이다. 그러나, 특정 프로그래밍 언어 표기 로 변환 하는 간단한 알고리즘 표기법 ,표기법은 일반적으로 알고리즘 프로그래밍 언어 의 표기법 과 일치해야합니다.

4. 알고리즘 표기법의사 코드 는컴퓨터에 의해 수행 될 수 있기 때문에 표기 는 , 알고리즘 프로그래밍 언어 표기 아니다. 컴퓨터에 의해 수행 될 , 알고리즘 표기법 의사 코드 변환 하거나선택된 프로그래밍 언어 표기 로 번역 되어야한다.

5. 이 알고리즘은 실제로 우리가 프로그래밍 언어로문제를 변환 할 수 있도록 하는 데 사용됩니다.

6. 알고리즘은 개념적 사고의결과이며 , 아가트 는컴퓨터에 의해 실행 되는 알고리즘은프로그래밍 언어 표기 로 번역 되어야한다. 즉 , 번역 에 주의해야 할 몇 가지가 있습니다 :
            변수 1) 선언
모든 프로그래밍 언어 가 필요로 할 때 프로그래밍 언어 사용 의 변수 선언 의 요구 사항 을 알 수 있습니다.

            데이터 유형 2) 선택
사용되는프로그래밍 언어변수 선언 을 필요로 할 때 다음이선거 시각 데이터 분류 에서 고려되어야한다.

            교육 , 교육 의 3 ) 신청
일부 명령어 는 동일한 사용법 을 가지고 있지만, 각각은 서로 다른 장점과 단점이 있습니다 .

            4) 규칙 구문
프로그램 작성 시에 우리 가 사용 하는 프로그래밍 언어 의 구문규칙 에 의해 구속 된다.

            5) 결과를 표시
순간 우리 는 알고리즘 의 결과 가 표시됩니다 볼 만드는 생각 되지 않습니다. 관찰 기술 문제 는 때 프로그램 으로 변환 .

            6) 어떻게 컴파일러 또는 인터프리터 작업 .
사용되는 프로그래밍 언어 는 배치 컴파일러 나 인터프리터 에 포함되어 있습니다.

4. 프로세서 알고리즘 구현 메커니즘

컴퓨터는 단지 하나의 프로세서 입니다. 컴퓨터 에 의해 실행되는 알고리즘은 그래서 프로그램 이라는프로그래밍 언어 표기 에 기록 되어야한다. 그래서프로그램은 컴퓨터에 의해 구현 될 수있는특정 프로그램 언어로 기술 알고리즘 의작성 또는 구현이다.

단어 " 알고리즘 "및 " 프로그램은 " 사용 자주 교환 할 수있다 . "선택 정렬 알고리즘을 사용하여 프로그램을 데이터 정렬 " 예를 들어 다음과 같이 말하는 사람들이있다 . 또는 이 같은 질문 : " 알고리즘 및 그래픽 프로그램을 묘사하는 방법"을 참조하십시오. 이미 이전에 언급 된 알고리즘 의 의미를 이해한다면 , 당신은 의미 론적 알고리즘과 프로그램을 구별 할 수 있습니다.

알고리즘프로그램은 프로그래밍 언어의 알고리즘을 실현 하는 동안용액 에, 문제를 계측하고 있다 . 하나의 프로그래밍 언어 와 프로그래밍 활동 작성된 프로그램 은 프로그래밍 ( 프로그래밍)을 언급했다. 프로그램의 모든 단계는 문이나 지침을 언급했다. 그래서, 구조화 된 교육 프로그램 의 범위 에 . 명령이 실행 된 경우에,연산은컴퓨터의지시에 따라 수행 된다.

네 개의 주요 부품 alatmasukan 즉 , 출력 장치 ,메인 프로세서 유닛 및 메모리 에 대한 광범위한 개요 구조화 컴퓨터 . 메인 프로세서 유닛 ( 중앙 처리 장치 - CPU )의 기능 이 같은 비교 연산 등의 기본 작업을 수행 할 수있는 컴퓨터의 " 두뇌 " 이며 , 작업은 계산 작업을 읽기 와 쓰기 작업을 할 수 있습니다. 메모리 저장하거나 기억 하기 위해 노력 하는 구성 요소입니다 .

( 조작에 의해 처리 ) 프로그램 ( 그것이 CPU 에 의해 수행 되는 작업을 포함 ) 및 데이터 나 정보가 메모리에 저장됩니다. 알람 입력 및 출력 ( I / O 디바이스 ) 활동 의결과를 통신하는 데 사용되는 장치 또는 메모리 에 데이터를 입력 하는 프로그램, 및 컴퓨터 도구이다 . 다른 입력 장치 ,키보드 ( 키보드 ) , 스캐너 ( 스캐너 ) 및 디스크 ( 디스크 ) 의 예 . 출력 장치 의 예는 버팀대 화면 (모니터) ,프린터 ( 프린터 ) 와 원반 이다.

이하 상기 의기구의네번째 요소는 설명 될 수있다. 우선,프로그램은컴퓨터의 메모리 에 포함 . 프로그램 ( 실행 ) 구현되면 , 상기 메모리 에 기억 된 각각의 명령 은CPU 에 전송된다. 이 지침에 따라 작업을 수행 할 수있는 CPU .

동작은데이터를 요구하는 경우 ,데이터는 ,입력 장치 로부터 판독 된 메모리에 저장 하고 지금 필요한 작업CPU 로 전송된다. 경우 ( 예 :모니터 화면의 표시 와 같은)최종 출력을 출력 장치 로제품이나정보 , 메모리에 저장된 제품, 및 메모리 기록 의 제조방법.

5. 알고리즘 평가

사람들이 문제를 중단 하려고 할 때 , 방법이나 기술이 많이 ( 하나가 아니라 )를 변경할 수있는 문제를 해결 하는 데 사용됩니다. 그리고 우리는 하나 이러한 기술 중에서 가장 적합한 선택합니다. 이것은 다른 방법 에 의해 해결 하고 논리문제를 허용알고리즘 과동일하다. 질문은최고알고리즘을 측정하는 방법 이다 ? 좋은 알고리즘 이 될 수있는 요구 사항 의 일부 입니다 :
1). 높은 수준의 믿음 ( realibility ) . 그 과정 에서 얻어진 결과는 높은 충실도와 진실 해야한다.

2). 처리 효율 ( 저렴한 비용 ) . 프로세스는 가능한 빨리 및 주파수 계산을 최대한 짧은 로서 완성 한다 .

3). 일반 자연 . 다만 아니라, 다른 일반적인 경우에 하나의 사건을 해결 하기 위해 뭔가 .

4). ( 확장 )를 개발 할 수 있습니다. 우리가 더 이상 기존의 요구 사항 변경 에 확대 를 할 수있는 어떤 것이어야한다 .

5). 이해 하기 쉽습니다. 보는 사람은 , 그는 당신의 알고리즘을 이해할 수있을 것입니다. 이프로그램은 하드 유지 ( 관리 )를 만들 것입니다 이해 하기가 어렵습니다.

6) . 높은 휴대 성 ( 이동성 ) . 쉽게 다양한 컴퓨터 플랫폼 에서 구현 될 수있다.

7). 정밀 (오른쪽 , 오른쪽, 철저하게 ) . 각 명령은 주의해서 작성 해야하며, 의심의 여지가 없다 , 따라서 어떤 지침을 명시 해야하며 이 이해하는 생각 이 있기 때문 프로세서는 생략 합니다. 각 단계는 명확하고 확실 해야한다.

예 : X 에서 1 또는 2 를 추가합니다.
의심 에 대한 지침 .

8) . 단계 또는 지침과 특정 의 유한 수 . 즉,동일한 사건 번호 에 대해 , 특정의 단계 는 데이터가 서로 다른 경우에도 고정 되어야 한다 .

9). 효과적인 . 우리는 지침에 따라 프로세서 의 실행 에 의해 수행 되지 않을 수 없습니다.

예 : 완벽한 정밀 루트 2 를 계산합니다.
위의 지침 이 적용됩니다 , 그래서 효과적인지도 가 변경됩니다.
예 : 쉼표 뒤에 2-5 자리 의 뿌리를 계산합니다.

10 ) . 출력 은 정확한 생산 . 알고리즘 의 논리적 단계를 주의 깊게 다음 경우 원하는 출력 을 생성 .

도널드 E. Knuth의 알고리즘에 따라기준 이지만 :
1) 입력 : 알고리즘은 외부에서 0 개 이상의 입력을 할 수 있습니다.
2) 출력 : 알고리즘이 적어도 하나의 과일 출력 이 있어야합니다.
3) 명확성 ( 명확한 ) 알고리즘은 지침 , 지시 명확하고 모호 있다.
4) 유한성 (무제한 ) : 알고리즘이 정지 지점이 있어야합니다 ( 역할 중지 ) .
극력 5 ) 효과 ( 정확하고 효율적인 ) 알고리즘을 구현 하고 효과적인 한다 . 효과 명령어 의 예 입니다 : A = A + 0 또는 A = A * 1

6. 알고리즘 의 프리젠 테이션

프레젠테이션 개요 알고리즘은 2 형태 , 텍스트와 이미지 , 즉 프레젠테이션 에있을 수 있습니다. 알고리즘은 특정 언어 (예 : 인도네시아어 , 영어 등 ) 구조와 의사 를 서면 으로 표시됩니다.

의사 코드 는 C 또는 파스칼 과 같은실제 프로그래밍 코드 유사한 코드 이므로 더 적절프로그래머 에게 전달 될 것이다 알고리즘을 설명하는 데 사용 된다 . 알고리즘흐름도 예를 들어 이미지 로 제시 된다. 일반적으로, 의사 는 알고리즘 초안을 작성 하는 과정에서 비공식적으로 아이디어를 표현한다. 의사 코드 를 생성 하는 한가지 방법은알고리즘의최종 버전을 표현 한다 되는형식 언어 의규칙을 늘릴 수 있다 . 사용되는프로그래밍 언어는초기부터 공지 된 경우 이 방식 은 일반적으로 사용된다.

1) 순서도
순서도 상태프로그램알고리즘 의흐름도 의형태로화상이라고프로그램의 흐름 방향 . 순서도 는단계 의그래픽 묘사 및프로그램의 절차 의시퀀스이다 .

작은 문제 로 세그먼트 를 해결 하고 작업 에 대안 을 분석 하는 데 도움이 분석가와 프로그래머 를 도와 순서도 . 순서도 프로세스와 문 사이의 순서와 관계를 보여주는 이미지 또는 차트 입니다 . 기호로 표시 이 설명 . 따라서 , 각 심볼은특정의 프로세스 를 도시한다. 프로세스는하이픈 에 의해 설명 된다.

플로우 차트 를 사용함으로써 우리 는 문제의 분석에 잊어 버린 부분을 확인 할 수 있습니다. 또한,흐름도 는 또한프로젝트 팀 내에서 작업 프로그래머 간의 통신을위한설비 로서 유용하다 .

즉, 컴퓨터와프로세스 를 도시 흐름도 의 두 가지 종류가 있다 :
시스템 흐름도 는데이터 처리 시스템 에서 , 다른 미디어파일에 대한미디어 파일의 절차와 과정의시퀀스 를 묘사 특정 기호차트이다.
순서도 프로그램 프로세스 및프로그램의 세부 프로세스 간의 관계 의시퀀스 를 묘사 특정 기호차트이다.

순서도 프로그램 제작에 절대 없는 수식이나 표준 . 순서도는컴퓨터에 문제 를 분석하는 아이디어 의 그림 이기 때문이다. 생성 된 플로우 차트 는 한 프로그래머 에 따라 다양 할 수 있다. 그러나, 일반적으로 항상 치료를 말하기 즉 3 개 주요 부분으로 구성되어 있습니다 :
1. 입력,
2. 처리 및
3. 산출

데이터 처리를위한 컴퓨터와 ,문제 해결의기본적인 서열 :
1. 시작문제 해결 을 폭행 하기 전에 필요한 장비 의 준비 에 문을 포함하고 있습니다.
2. 읽기 , 입력 장치 로부터 데이터를 읽기위한 활동 에 대한 설명을 포함하고 있습니다.
3. 프로세스 , 데이터 읽기 에 따라 문제 해결 과 관련된 활동 이 포함되어 있습니다.
4. 출력 기기에 활동의 결과를 기록 할 수있는 문을 포함 , 쓰기 .
5. 끝나는 ,가공 작업을 끝낸다.

표준 규칙은 플로우 차트 의 준비 가 되지 않지만, 몇 가지 제안 이 있지만 :
1. 짧은 프로세스에프로세스와 논리 때문에 복잡한 경로 의 불필요한 반복 을 피하십시오.
2. 프로세스의 과정은 위에서 아래로 설명 하고 명확하게 화살표 주어진다.
3. 순서도는 한 지점에서 시작 과 끝 의 시작 과 끝납니다.

여기에 프로그래밍 의 세계 에 의해 합의 순서도 기호 의 몇 가지 예는 다음과 같습니다 :

2) 의사 코드

의사 는 높은 수준 ( 높은 수준 ) 에서 알고리즘을 작성하는 방법입니다. 의사 는 일반적으로 영어와 수학 표기법 의 조합으로 기록됩니다. 보통의사 코드 도 프로그램 에 비해 자세히 설명 하지 .

7. 기본 구조 알고리즘

이 알고리즘은 문제 의 단계 완료 가 포함되어 있습니다. 이러한 단계는 실행 ( 서열 ) 의 동작 , 행위 선택 ( 선택) ,행동 ( 반복 ) 의반복 또는 모든 세 가지 의조합을 포함 할 수있다. 그래서알고리즘 개발 의기본 구조는 세 즉 있다 :
1. 실행 의 구조
순차 문이나 시퀀스를 프로그래밍 하는 데 사용됩니다.
2. 구조 선택
선택이나 검사 조건을 사용하는 프로그램 에 사용됩니다.
3. 반복 구조
문이 반복적으로 실행됩니다 프로그램 에 사용됩니다.

알고리즘에서 기호 또는 특정 프로그래밍 언어 의 구문을 사용하지만 일반적 이며 모든 프로그래밍 언어 에 의존하지 않는 하지 않습니다. 표기 알고리즘은 어디에서든지 모든 프로그래밍 언어 를 위해 사용될 수있다.

Comments

Popular Posts