int array[4][4] = { {3,8,14,15},{4,9,2,10}, {5,13,16,12},{1,7,11,6} };
이런식으로 2차원 배열이 있으면 여기서 삽입정렬로 오름차순 정렬 하는거임
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++) {
for (int y = j + 1; y > 0 && i > -1; y--){
if (i > 0 && y == 0) {
i = i - 1;
y = 3;
}
if (sort[i][y - 1] > sort[i][y]) {
tmp1 = sort[i][y];
sort[i][y] = sort[i][y - 1];
sort[i][y - 1] = tmp1;
}
}
}
}
일케 짜봤는데 각 2번째 배열에서만 정렬되고 전체적으로 정렬은 안댐;;
여기서 어캐 고쳐야되냐 진짜 살려줘라 행님행님 야!!!!!!!!!!!
코드 이해가 안가는데 4x4 16칸 전체를 정렬하는거임? 정렬된 배열 4개를 만드는게 아니라? - dc App
16칸 전체를 정렬하는거면 [0][0]부터 [0][15] 까지 그냥 정렬 시키면 됨 ㄱ - dc App
[0][0]부터 [4][4] 까지 정렬하는거임 하나의 배열 안에 작은 배열 4개가 들어있는 꼴
[3][3]까지네
근데 반복문 안에서 i가 왜 변함? - dc App
3중 반복문 말하는거지?? 안그래도 2번째 배열부터는 다시 첫번째 배열에 마지막 인덱스부터 정렬해야 하니까 if(i>0 && y == 0) {i = i - 1; y = 3;} 넣어논건데 안먹히나봐
아니 그럼 4x4짜리 16칸 정렬하는게 맞잖아 - dc App
[1][0]이랑 [0][4]는 같은 값을 가리키는 거니까 2차원 접근말고 1차원으로 접근하면 쉽게 풀림 - dc App
아 그런거임?? 파이썬만 하다 c언어는 첨이라 몰랐네... 어쩐지 버블정렬 할때도 이상하더라 한번 해보겠음ㄳㄳ
그리고 지금 코드 첫번째 if문이 y==0인 경우를 감지하고 싶은거 같은데 반복문 바로 아래에 해 놓으면 y>0 조건 때문에 절대 실행안됨 - dc App
y-- 이후에 if로 감지하도록 구조를 만들어야됨 - dc App
1차원으로 접근해서 풀면 교수게이가 철퇴 때릴까봐 무서워서 2차원으로 하는건데 ㄱㅊ을려나
2차원으로 할꺼면 y for문 위에 적은데로 수정 ㄱ - dc App
while쓰면 쉬울꺼 - dc App
아니면 1차원 기반으로 하되 몫 나머지 이용해서 구현은 2차원으로 하던지 - dc App
어떻게 하냐면 .. - dc App
나죽어~~~~~
약간 머지소트 느낌이네 - dc App
정신나갈것같애~~~~~~
굳이 왜 4개씩나눠서함 16개 한꺼번에 하믄대지 - dc App
교수게이가 2차원 배열로 낸 이유가 있지 아늘까...