2차원 배열로 바꾸는문제 도와주세요
천사
질문 제목 : 다차원 배열문제입니다.질문 요약 :주어진소스를 응용하여 2차원배열형태로 바꾸거나 아니면 다른식으로 만드는 소스좀 가르쳐주세요질문 내용 :
정렬
자료를 순서대로 나열하는 것
선택정렬
n개의 자료 중 가장 작은 자룔를 찾아서 첫째 원소와 교환
나머지 n-1개 자료 중 가장 작은 자료를 찾아서 둘째 원소와 교환
이러한 방식을 1개 자료가 남을 때까지 반복 수행
10 4 6 1 5 a[0]~a[4]의 최소값 위치 찾은 후 a[0]와 교환
1 4 6 10 5 a[0]~a[4]의 최소값 위치 찾은 후 a[1]와 교환
1 4 6 10 5 a[0]~a[4]의 최소값 위치 찾은 후 a[2]와 교환
1 4 5 10 6 a[0]~a[4]의 최소값 위치 찾은 후 a[3]와 교환
1 4 5 6 10 =정렬된 결과
임의의 2차원 배열을 선언하고
예) a[4][5] 라고 한다면 각행의 최소값을 a[0][0]을 기준으로 정렬한다
void select_sort(int data)....data:정렬할 배열 n:배열의 크기
{
int i; ..정렬되지 않은 시작 인덱스
int min_i; ..최소값의 인덱스
int j; temp;
for(i=0, in-1; i++){
/*data[i]~data[n-1]의 최소값의 인덱스 찾기*/
min_i=i; ...data[i]가 최소값이라고가정
for (j=i+1; jn;j++)
if(data[j]data[min_i]) ...data[i]가 현재 최소값보다 작으면
min_i=j; ...최소값 인덱스변경
if(i!=min_i){ ...i가 최소값 인덱스가 아니면 두 위치의 자료교환
temp=data[i];data[i]=data[min_i]; data[min_i]=temp;
}
}