개발/컴퓨터알고리즘

개발/컴퓨터알고리즘

최대 숫자 찾기 - 순차 탐색 알고리즘(C언어)

문제를 해결하기 위한 절차인 알고리즘을 공부할 때 처음으로 나오는 것은 최대 숫자 찾기이다. 정수 배열 중 최대 숫자 찾기에는 여러 방법이 있는데 이 중에서도 가장 기본적인 아이디어인 순차 탐색 알고리즘을 알아보자 1. 문제 이해 먼저 우리는 가장 큰 숫자를 어떻게 찾을까? 전체적으로 숫자들을 보며 눈에 띄는 큰 숫자를 찾은 뒤 더 큰 숫자가 없나 확인해 볼 것이다. 그리고 더 큰 숫자가 보이지 않는다면 탐색을 종료할 것이다. 하지만 컴퓨터 문제로 가져온다면 최대 숫자 찾기 문제는 달라진다. 컴퓨터는 저 종이를 어떻게 깔아놓을까? 먼저 컴퓨터는 CPU 연산 전 작업을 위해 메모리에 숫자를 로드한다. 해당 메모리에서 연산할 것을 레지스터에 가져와 연산하게 된다. 편하게 메모리라는 책장에서 작업을 위해 레지..

개발/컴퓨터알고리즘

선택 정렬, 버블 정렬같이 사용되지 않는 알고리즘을 공부하는 이유는 무엇일까?

선택 정렬, 버블 정렬같이 사용되지 않는 알고리즘을 공부하는 이유는 무엇일까? chatGPT와 함께 알아보자. 컴퓨터알고리즘 수업시간에 이진 탐색과 시간복잡도를 배운다. 이진 탐색을 통해 빠른 탐색을 위해서는 자료를 정렬해야 한다는 것을 알게 되어 자료를 정렬하는 여러 방법에 대해 배우게 된다. 많은 정렬이 있는데 결국 쓰이는 좋은 정렬의 조건은 1. 시간복잡도가 낮을 것(평균, 베스트, 워스트 케이스 모두에서. 특히 평균의 경우) 2. 메모리 사용 크기가 적으면 좋음 3. 안정성이 있으면 좋음(안정성이란 만약 같은 값이 있을 때, 정렬을 할 때마다 순서가 바뀌지 않고, 항상 원래 있던 선후 관계를 뒤바꾸지 않고 일정하게 나오는 것) 이 정도이다. chatGPT에게 가장 효율적이고 널리 사용되는 정렬 알..

pabu
'개발/컴퓨터알고리즘' 카테고리의 글 목록