지역변수 개념에대해.(SORT 쏘스.)
이송이
class Sort{
public void selectionSort(int a[]){ //1번 ------- 여기 a배열이랑.
int i,j,min;
for(i=0;ia.length-1;i++){
min=i;
for(j=i+1;ja.length-1;j++){
if(a[j]a[min])
min=j;
}
swap(a,min,i);
System.out.printf(\n선택 정렬 %d 단계: ,i+1);
for(j=0;ja.length-1;j++)
System.out.printf(%3d , a[j]);
}
}
public void swap(int a[],int i,int j){ //2번 ---- 이 a배열은 어떤차인가요?
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}}
class Ex11_1{
public static void main(String args[]){
int a[]={69,10,20,30,2,16,8,8,31,22};
Sort S=new Sort();
System.out.printf(\n정렬할 원소 : );
for(int i=0;ia.length;i++)
System.out.printf( %d,a[i]);
System.out.println();
S.selectionSort(a);
}
}다음은 소트 프로그램입니다.
보기에 표시된 각각의 메소드의 파라미터 1번 a[]와 2번 a[]이 같은 a인지 아니면
이것도 지역 변수 개념인지 궁금합니다. 제 예상 결과는 일단 맨앞에 가장 작은수가 오고
나머지 swap메소드에 있는 2번 a[]를 아무리 바꾸워도 그건 swap안에 정의된 진역변수개념으로
바뀌지 않을것이다 이게 제 예상 결과이나. 결과는 7번의 정렬로 다 정렬 되었습니다. 왜그런가요??
다음은 결과 입니다.
정렬할 원소 : 69 10 20 30 2 16 8 8 31 22
선택 정렬 1 단계: 2 10 20 30 69 16 8 8 31
선택 정렬 2 단계: 2 8 20 30 69 16 10 8 31
선택 정렬 3 단계: 2 8 8 30 69 16 10 20 31
선택 정렬 4 단계: 2 8 8 10 69 16 30 20 31
선택 정렬 5 단계: 2 8 8 10 16 69 30 20 31
선택 정렬 6 단계: 2 8 8 10 16 20 30 69 31
선택 정렬 7 단계: 2 8 8 10 16 20 30 69 31
선택 정렬 8 단계: 2 8 8 10 16 20 30 31 69
선택 정렬 9 단계: 2 8 8 10 16 20 30 31 69
-
난초
아하 ~ 자세한 답변 감사합니다 ㅎㅎㅎ 자바 이놈이 포인터 개념을 없다고 좋다고 하길래 그래도 은근슬적 있다곤 들었는데 ㅋㅋ 정확히 몰랐는데 이제 알게 됐네요. 감사합니다 ㅎㅎㅎ 오늘도 한수 배우고 갑니다 ㅎㅎㅎ
-
맑다
흠...자세한건 문법책을 한두권 보셔야 될 듯 싶습니다만..^^;;
급 귀차니즘때문에 간단히 적자면...
변수 이름은 서로 a로 동일하든 동일하지 않든 중요하지 않습니다.^^
세부적인건 인터넷등에서 call by name이니 call by value니
call by reference 등으로 찾아 보시면 어느정도 이해가 가리라 봅니다.
일단 메소드의 파라메터로 선언된 변수들은 이름이 동일하다고 해도...
실제 존재하는 사람이 서로 다른 동명