알고리즘이란 무엇입니까?

알고리즘이 어떻게 실행되는지 알아보십시오

알고리즘은 일련의 명령어입니다. 정의는 정말 간단합니다. 알고리즘은 다음과 같은 지침을 제공하는 것처럼 쉽습니다.

  1. 거리로 내려 가라.
  2. 첫 번째 우회전
  3. 왼쪽에있는 두 번째 집 찾기
  4. 문을 두 드리십시오.
  5. 패키지를 배달하십시오.

알고리즘의 정의는 간단하지만 실제 의미와 그것이 우리 삶에 미치는 영향은 매우 복잡 할 수 있습니다.

알고리즘의 예

일상 생활에서 사용하는 알고리즘의 일반적인 예는 제조법입니다. 이 지침 세트는 우리에게 필요한 모든 재료와 그 재료로 무엇을해야하는지에 대한 지침을 제공합니다. 쉽지, 그렇지?

그러나 측정 컵이 어디에 보관되는지 모르는 경우에는 어떻게해야합니까? 그것을 찾으려면 알고리즘이 필요합니다. 측정 컵을 사용하는 방법에 대한 알고리즘이 필요할 수도 있습니다.

따라서 알고리즘이 일련의 지침 인 반면, 알고리즘을 누가 또는 무엇을 해석 할지를 고려해야합니다. 예를 들어 친구에게 가장 가까운 식료품 가게로가는 방법을 자세히 설명하는 친구에게 길을 알려준 경우 친구는 집이 어디에 있는지 알고 있으면 해당 가게에가는 방법 만 알 수 있습니다. 그들은 다른 식료품 점을 다른 친구 집에서 찾을 수는 없습니다.

이것은 알고리즘이 단순하고 복잡 할 수있는 방법입니다. 우리가 컴퓨터 알고리즘에 관해 이야기 할 때, 컴퓨터가 할 수있는 것을 이해하는 것은 알고리즘을 구성하는 기본적인 부분입니다.

어떻게 정렬 알고리즘이 진화 했는가?

가장 초기에 생성 된 알고리즘 중 하나는 거품 정렬 루틴이었습니다. 버블 정렬은 데이터 세트를 반복하면서 숫자, 문자 또는 단어를 정렬하고 각 값의 세트를 나란히 비교하여 필요할 때이를 바꿔 쓰는 방법입니다.

이 루프는 알고리즘이 아무것도 교체하지 않고 전체 목록을 이동할 수있을 때까지 반복됩니다. 즉, 값이 올바르게 정렬됩니다. 이러한 유형의 알고리즘은 종종 작업을 완료 할 때까지 반복적으로 반복되기 때문에 재귀 알고리즘이라고합니다.

알고리즘은 다음과 같이 간단하게 보일 수 있습니다.

  1. 첫 번째 값으로 이동하십시오.
  2. 다음 값에 대해 그 값을 확인하고 필요할 경우 위치를 바꿉니다.
  3. 다음 값으로 이동하여 비교를 반복하십시오.
  4. 목록의 끝 부분에있는 경우 루프 중에 값이 바뀌면 맨 위로 이동하십시오.

그러나 버블 정렬은 값을 정렬하는 가장 효율적인 방법이 아닙니다. 시간이 갈수록 컴퓨터가 복잡한 작업을 신속하게 수행 할 수있게됨에 따라 새로운 정렬 알고리즘이 나타났습니다.

이러한 알고리즘 중 하나가 첫 번째 목록을 검색하여 정렬 된 값의 두 번째 목록을 만듭니다. 이 방법은 원래 목록을 한 번 통과 시키며 값을 넣을 올바른 위치를 찾을 때까지 각 값을 사용하여 두 번째 목록을 반복합니다. 일반적으로 버블 정렬 방법을 사용하는 것보다 효율적입니다.

이것은 알고리즘이 정말로 미칠 수있는 곳입니다. 또는 당신이 그것을 어떻게 보느냐에 따라 정말로 흥미 롭습니다.

버블 정렬 방법은 여러 가지 방법으로 값을 정렬하는 가장 비효율적 인 방법 중 하나로 간주되지만, 원래 목록이 미리 선 정렬되어 있으면 버블 정렬이 가장 효율적입니다. 이 경우 버블 정렬 알고리즘이 한 번만 목록을 통과하고 올바르게 정렬되었는지 판단하기 때문입니다.

불행히도, 우리는 항상 우리의 목록이 미리 분류되어 있는지 알지 못하기 때문에 많은 수의 목록에서 평균적으로 가장 효율적으로 사용할 수있는 알고리즘을 선택해야합니다.

버블 정렬 방식

일상 생활에서 페이 스북 알고리즘 및 기타

알고리즘은 인간을 돕는 일에 매일 사용되고 있습니다. 웹을 검색 할 때 알고리즘이 최상의 검색 결과를 찾으려고 노력하고 있습니다. 스마트 폰에 길 찾기를 요청하면 알고리즘을 통해 가장 적합한 경로를 결정합니다. 그리고 페이스 북을 탐색 할 때 알고리즘이 우리 친구의 페이스 북 게시물 중 가장 중요한 것을 결정합니다. (우리 친구가 Facebook이 우리가 가장 좋아한다고 생각하는 것을 찾지 않기를 바랍니다.)

그러나 알고리즘을 생각하면 컴퓨터 생활을 훨씬 능가 할 수 있습니다. 그것은 심지어 우리가 더 나은 샌드위치를 ​​만드는 데 도움이 될 수 있습니다.

먼저 두 조각의 빵으로 시작하여 하나의 조각에 겨자를 펼치고 다른 조각에는 마요네즈를 펼칩니다. 나는 마요네즈, 그 위에 일부 햄, 양상추, 토마토 두 조각으로 빵 한 조각을 넣은 다음 겨자가있는 조각으로 덮는다. 좋은 샌드위치 맞지?

내가 그것을 바로 먹으면 분명히. 그러나 잠시 테이블 위에 놓아두면, 빵 조각이 그 토마토의 일부를 흡수하지 못하게 될 것입니다. 그것은 내가 예상하지 못했던 문제이며, 몇 년 동안 샌드위치를 ​​알아 차리기 전에 샌드위치를 ​​만들지 만, 일단 내가하면 샌드위치를 ​​만들기 위해 알고리즘을 변경하는 방법을 생각해 볼 수 있습니다.

예를 들어 토마토를 없앨 수 있습니다. 하지만 나는 토마토 맛을 잃고 싶지 않습니다. 그래서 대신 빵과 양상추 뒤에 토마토를 넣을 수 있습니다. 이것은 양상추가 토마토와 빵 사이에 보호 장벽을 형성하게합니다.

이것은 알고리즘이 진화하는 방식입니다. 그리고 알고리즘은 알고리즘으로 컴퓨터에서 실행할 필요가 없습니다. 알고리즘은 프로세스이며 프로세스는 우리 주변에 있습니다.