티스토리 뷰

정렬의 종류는 삽입정렬 선택정렬 버블정렬 등이 있고 검색하다보니 다른 정렬방법도 많이 있는 것 같다.



import java.util.Scanner;//스캐너 호출명령어
//import java.util.*;도 가능
public class chanyurappa {

public static void main(String args[]) {//메인
int A[] = new int[10];
Scanner sc = new Scanner(System.in);

for(int i=0; i<A.length; i++)//배열값 입력
{
A[i] = sc.nextInt();
}
sc.close();//스캐너 닫기

bubbleSort(A);//A를 넘겨줌
//
for(int i=0; i<A.length; i++)//출력
{
System.out.print(A[i]+" ");
}
}
//메소드
static void bubbleSort(int A[])//A[]를 받아옴
{
for(int i=A.length; i>=0; i--)//오름차순정렬
{
for(int j=0; j<A.length-1; j++)
{
if(A[j]>A[j+1])
{
int temp = A[j];
A[j] = A[j+1];
A[j+1] = temp;
}
}
}
}
}



저번에는 static 변수를 만들어서 class 전체에서 사용가능하게 했었는데

이번에는 Main메소드 안에서 변수를 생성하고 bubbleSort 메소드를 실행할 때 인수로 A를 넘겨줬다.


temp는 임시저장 혹은 쓰레기값들을 처리하는 변수로 많이 사용한다고 하는데 bubbleSort 메소드에서만 사용할 변수라서 밑에서 생성했다.


여기서 제일 이해가 필요한 부분이 이부분인데

int temp = A[j]; 

A[j] = A[j+1]; 

A[j+1] = temp;

바로 옆에 있는 배열과 비교해서 큰 수를 오른쪽으로 보내는 방법(?)이다.

A[0] 과 A[1]을 비교해서 A[0]이 크면

A[j]을 temp 에 넣고

A[j+1]을 A[j]에 넣고

temp를 A[j+1]에 넣는다.

temp에 잠시 빼두었다가 옆칸으로 옮기고 나서

빈 자리에 temp를 넣는다는 얘기다.


sc.close(); - 스캐너를 닫아주는 명령어

'Computer Language > JAVA' 카테고리의 다른 글

015 - 선택정렬  (0) 2018.05.04
이클립스 단축키  (0) 2018.05.04
013 - 메소드 호출(최대값, 최소값)  (0) 2018.05.04
자바 수업 끝;;(후기;;)  (0) 2018.05.04
012 - 계산기 만들기  (0) 2018.05.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday