유사 코드를 이용한 알고리즘 내용 가운데서
딥블루
알고리즘에 대한 책을 읽다 며칠 전부터 이해할 수 없는 부분이 있어 이렇게 질문드립니다. 코드는 유사 코드인 관계로 특별히 C 언어 관점은 아닙니다.
먼저, int arr[5] = { 25, 32, 20, 46, 15 }가 있고, 순서는 arr[1] = 25, arr[2] = 32, arr[3] = 20, arr[4] = 46, arr[5] = 15와 같습니다. 이제 이를 오름차순으로 정리하기 위한 알고리즘의 일부는 아래와 같습니다.
1) minIndex = 1;
2) for(j = 2; j =n; j++)
3) if(a[j] A[minIndex])
4) minIndex = j;
일단, 순서대로 읽어가면 어떤 흐름인지 알겠습니다. 그런데, 제가 보는 알고리즘 관련 책에서는 n = 5일 경우 위의 알고리즘이 끝날 때까지 2번째 줄은 5회를 실행하고, 3번째 줄은 4회를 실행한다고 나옵니다. 또한, n = 10일 경우 2번째 줄은 10회를, 3번째 줄은 9회를 실행한다고 적었습니다.
n = 5라면, 결국 for(j = 2; j = n; j++)은 for(j = 2; j = 5; j++)일테고 그럼 총 4번 실행하는 것이 아닌지요? 제가 어디에서 놓치고 있는지요?
-
민아
책이라고 해서 다 맞는건 아닙니다. 아마도 책의 오타이거나 저자의 실수같군요.책보면 100프로 완벽한 책 없습니다. 나중에 2~4번 정도 읽다보면 저자가 실수한 부분이 눈에 띄게 됩니다 ^^;
-
시윤
간단한 버블 정렬 방법을 알려드릴께요 ;;
#include stdio.h
#include string.h
#include windows.h
int main()
{
\tint arr[5];
\tint i,j;
\tint len=0;
\tint temp=0;
\tmemset(arr,\t0x00, sizeof(arr));
\tlen=sizeof(arr)/sizeof(int);
\tfor(i=0; ilen; i++) {
\t\tprintf(\[%d]정수 -
드리
정욱님, 잘 읽었습니다. 책 내용이 무척 애매모호하죠? 그래서 여기 계신 고수님들께 질문 올리는 것입니다. 좋은 입력이 좋은 출력을 낳는다고 하는데 책이 왜 이리 어렵게 느껴질까요? 이번 참에 괜찮은 알고리즘 책 추천이라도 해주세요. ㅠㅠ
-
다은
룸펜님 잘 읽었습니다. 그런데, j = 1부터 시작하면 저도 이해할 수 있겠는데 j = 2부터 시작한다고 나옵니다. 그럼 총 4회 실행하는 것이 아닌지요? 그리고 책은 저도 사고 나서야 책의 질을 확인했습니다. 제 개인적으로는 무척 불만족스럽더군요. 그렇지만, 일단 읽기 시작한 책인 만큼 모르는 부분이 나오면 이렇게 여쭈어볼 작정입니다. ㅠㅠ
-
트런들
n이 5일 경우 for문을 실행하는 2~5의 경우외에도 for문을 빠져나오기위해 n이 6일때도 비교를하기때문에 5번이라고 설명되있는게 아닌가싶네요.
-
빗줄기
아, 네! 원래는 전체적인 내용이 나오는데, 필요한 부분만 발췌해서 그런가요? 원래는 아무런 순서 없이 입력 받은 자료를 출력할 때에는 순서대로 처리하는 알고리즘에 대한 내용입니다. 일종의 정렬이라고 해야 하나요? 이를 위해 최소값을 가장 왼쪽에 두고 바로 옆에 있는 수를 비교해 나가면서 마지막까지 그러한 비교를 반복한다는 내용입니다. 이 정도 설명만으로도 부족할까요?
-
천사의눈물
1부터 시작하면 5번 실행 하는거 맞습니다.1,2,3,4,5이기에, 5보다 작거나 같을때까지 for문이 돌아가니깐 맞습니다.그리고 책 내용이 유저를 돕기 위해서 1부터 시작한건지 아닌지는 모르겠지만 그리 좋게 설명된 책이 아니라고 봅니다.배열을 채울때 0번부터 쓰지 누가 0을뺀 1부터 채워서 쓰는 프로그래머가 과연 있을까요?
-
봄나비
소스가 뭔가 제가 알아보기에는 상당히 난해하네요 ㅡㅡ; 저 알고리즘이 맞는지 안맞는지는 모르겠지만 누가 보고 이해하기 힘든 저런 알고리즘은 좋은 알고리즘이 아니라고 봅니다 ㅡㅡ;
-
나라우람
아! 책에 보면 1부터 시작한다고 가정하더군요. 물론, 0번부터가 일반적이지만, 제가 보는 책에서는 1번부터 시작한다고 하더군요.
-
By은지
int arr[5] = { 25, 32, 20, 46, 15 }가 있고, 순서는 arr[1] = 25, arr[2] = 32, arr[3] = 20, arr[4] = 46, arr[5] = 15 이면 overflow 나지 않나요? arr[0]부터 arr[4]를 잘못쓰신건가?
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676182 | 숫자 순서대로 배열하는법 | 권뉴 | 2024-11-24 |
2676152 | 기본적인거 하나 질문드립니다. | 개미 | 2024-11-24 |
2676124 | 함수선언관련 질문이에요~...털썩..수정완료 (2) | 가지 | 2024-11-24 |
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |