- 배열 변수를 배열 변수에 대입하기
int intArr[] = new int[5];
int mArr[] = intArr;
for(int i = 0 ; i < 5 ; i++) {
intArr[i] = i;
}
for(int j = 0 ; j < 5 ; j++) {
System.out.println(intArr[j]);
}
System.out.println("------------");
for(int k = 0 ; k < 5 ; k++) {
System.out.println(mArr[k]);
}
System.out.println("------------");
mArr[2] = 100;
for(int j = 0 ; j < 5; j++) {
System.out.println(intArr[j]);
mArr[2]에 100을 대입했기 때문에 inArr[2]에도 100이 대입된다.
같은 공간을 공유하기 때문이다.
- 배열의 최대값, 최소값 비교
System.out.println("숫자 5개를 입력하세요.");
int numArr[] = new int[5];
//5개 숫자 입력 처리
for(int i = 0 ; i < 5 ; i++) {
numArr[i] = scan.nextInt();
}
//최대값/최소값 찾기
int max = 0, min = 9999;
for(int j = 0; j < 5; j++) {
//최대값 비교
if(max < numArr[j]) {
max = numArr[j];
}
//최소값 비교
if(min > numArr[j]) {
min = numArr[j];
}
}
System.out.println("가장 큰 값은 : " + max);
System.out.println("가장 작은 값은 : " + min);
최대값, 최소값 변수에 값을 지정해줄 때는 최소값에는 가장 큰 값을 대입해놓고, 최대값에는 가장 작은 값을 넣어준다.
이유는 수치 두개를 만들어놓고, 첫번째 값과 비교하면 무조건 첫번째 값이 최대값이나 최소값에 대입되기 때문이다.
다른 방법으로는 아예 배열의 첫번째 값을 대입해주는 방법도 있다.
- 버블 정렬
import java.util.*;
public class BubbleSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int numArr[] = { 8, 23, 100, 26, 1 };
System.out.print("정렬 전 : ");
for(int n : numArr) {
System.out.print(n + " ");
}
System.out.println();//단순 줄 바꿈 처리
//버블 정렬
int temp = 0;
//배열의 크기를 구하는 키워드
//배열이름.length
System.out.println("배열의 크기 : " + numArr.length);
for(int i = 0; i < numArr.length; i++) {//라운드횟수(0~5까지)
for(int j = 0; j < numArr.length-i-1; j++) {//(0~4까지)
if(numArr[j] > numArr[j + 1]) {
temp = numArr[j];
numArr[j] = numArr[j+1];
numArr[j+1] = temp;
}
}
}
System.out.print("버블 정렬 후 : ");
for(int n : numArr) {
System.out.print(n + " ");
}
}
}
옆 배열과의 숫자를 비교해서 좌우교환 후 순서대로 정렬하는 방법
8 | 23 | 100 | 26 | 1 |
↓
1 | 8 | 23 | 26 | 100 |
- 선택 정렬
public class SelectionSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int numArr[] = { 8, 23, 100, 26, 1 };
int min; //최소값을 가진 데이터의 인덱스 저장 변수
int temp;
System.out.print("정렬 전 : ");
for(int n : numArr) {
System.out.print(n + " ");
}
System.out.println();//줄바꿈 처리
for(int i = 0; i < numArr.length - 1; i++) {
//배열크기 - 1 : 마지막 요소는 처리하지 않음
min = i;
for(int j = i + 1; j < numArr.length; j++) {
if(numArr[min] > numArr[j]) {
min = j;
}
}
temp = numArr[min];
numArr[min] = numArr[i];
numArr[i] = temp;
}
System.out.print("정렬 후 : ");
for(int n : numArr) {
System.out.print(n + " ");
}
}
}
최소값을 선택해 맨 앞 배열과 교환하여 배열하는 방법
'JAVA' 카테고리의 다른 글
0317 JAVA - 객체지향(캡슐화), static 메소드와 인스턴스 메소드 (0) | 2020.03.17 |
---|---|
0316 JAVA - 객체지향 (0) | 2020.03.16 |
0310 JAVA - 배열 예제(가계부 프로그램) (0) | 2020.03.11 |
0310 JAVA - 배열 예제(학생 관리 프로그램) (0) | 2020.03.11 |
0310 JAVA - 메소드, 사칙연산 계산기 예제 (0) | 2020.03.10 |