게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
선택정렬 알고리즘 관련 질문입니다
게시물ID : programmer_9253짧은주소 복사하기
작성자 : 훗날닭집사장
추천 : 0
조회수 : 409회
댓글수 : 3개
등록시간 : 2015/04/10 12:47:55
옵션
  • 본인삭제금지
void selectionsort(int list[], int n)
{
  for(int i=0; i<n-1; i++) // i는 늘 j보다 1 작음. 앞 뒤의 수를 비교해줘야 하므로.
  {
      int min = i;
       for(int j=i+1; j<n; j++) // j는 i보다 늘 1 더 큼.
         if(list[j] < list[min]) // 저장되어있는 배열의 숫자들에서 list[1] 배열에 있는 수 보다 list[0] 배열에 있는 수가 크면
            min = j; // min에 j값을 저장시키고
         swap(list[i], list[min]); // 앞 뒤 순서를 바꿔주는 swap 함수 실행
}
 
이러한 알고리즘이 있는데요.
 
궁금한게, 굳이 min이라는 변수를 선언해서 i를 저장시켰다가 j를 저장시켰다가 하는 이유를 모르겠습니다.
그냥 반복문만 해서
 
for(int i=0; i<n-1; i++)
{
   for(int j=i+1; j<n; j++)
     if(list[j] < list[i])
       swap(list[i], list[j]);
}
 
해주면 되지 않나요???
 
 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호