ㅅㅂ 형님들 존나 고수인거 아니까..구걸함..ㅜㅜ
지금 선택정렬 그거 공부하고있는데..
void sort(){
for(int i=0; i<MAX_SIZE; i++){
min=sort[i]; ///////여기에 작은값이 첫번째라고 정하고
for(int j=i+1; j<MAX_SIZE; j++){
if(min>sort[j]){ //////////더 작은값이 나오면 최솟값 바꿔주면서 min 에 최솟값 넣고
min=sort[j];
}
int tmp =j; /////////////최솟값 넣은 위치랑 첫번째 위치랑 바꾸는거여
j = i; ////////// j가 i 다음에 나오는거니까 괜찮은거같은데 안돼지 !?!?!?ㅜㅜㅜㅜ
i= tmp;
}System.out.print(sort[i]);
}
}
sort 안에 3,4,1,2 넣었는데
1133 으로 결과뜨네...
남들이 한거 보고 좀 보완한거여..
뭔가보일듯 말듯 너무 답답해서 여기다 글적어..ㅜㅜ
j랑 i가 뭔데 둘이 바꿔.
정렬이 되기전에 배열안에 넣은 값부터 출력이 안되네;;
배열 j 랑 i 순서 바꾸기!! i가 항상 첫번째 배열값이고.. j는 최솟값이고.. 둘이바꾼껴! 아직도 못품 날 돌머리
답을 원하는거냐? 뭐가 문젠지를 원하는거냐?
뭐가 문제인지 모르겠어...ㅜㅜ 내머리가 문제인건 일단 알고있어..ㅋㅋ
틀린것이 워낙 많지만 잘못된 곳을 말해줄께. (1) 너는 선택정렬에 대해서 제대로 모르는것 같다. 선택정렬은 배열을 쭉 훑어보고 가장 작은값을 찾아서 해당 위치의 값과 첫번째 위치의 값을 바꿔주는거다. (이걸 반복) (2) 니가 짠 코드에서 j는 최소값의 위치가 아니다. 즉 min = sort[j]가 아니라 min = j 를 넣어줌으로써 min이 최소값의 위치를 알려주게 해야한다. (2) 스왑을 할때 왜 i랑 j랑 바꾸는지 모르겠다. sort[min]이랑 sort[i]랑 바꿔라.
for(int i=0; i<MAX_SIZE; i++) { min = i; for(int j=i+1; j<MAX_SIZE; j++){ if(sort[min]>sort[j]) { min = j; } } int tmp = sort[min]; sort[min] = sort[i]; sort[i] = tmp; System.out.print(sort[i]);}
아직 부족하지만 약간 이해한거같아! 2시간동안 골머리 썩히던게 조금 풀렸넹. ㅇ성님 고마워!!!
정품칵스타처방→【주소▶affn5.w70.kr◀복사】←정품칵스타처방◇정품칵스타처방◇정품칵스타처방━━정품칵스타처방