1. 배열 섞기
//배열을 섞는 코드 : random이용
//실 데이터를 덮어쓰기 전, 데이터를 유지하기 위해 임시 번지 사용
//방법 : 랜덤한 번지(0~arr.length)를 선택해서 다른 번지와 교환
int min = 0;//시작번지
int max = arr.length; //10개 (배열의 길이)
int random = 0;
//배열 섞기
for (int i=0; i<arr.length; i++) { // 첫번째 교환 대상
random = (int)(Math.random()*max)+min;
int tmp = arr[i]; // 0번지의 값이 tmp로 이동
arr[i] = arr[random]; // 랜덤 번지값이 0번지로 이동
arr[random] = tmp; // 랜덤 번지에 0번지의 값 이동 // 교환완료
}
System.out.println("----섞은 후----");
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i]+" ");
}
2. 섞인 배열 정리 (오름차순: 작은 수 부터)
//1. 오름차순
//1번지 수와 0번지 수 비교 -> 0번지 수가 마지막 번지까지 순서대로 비교 (pass1) : 반복
for (int i=0; i<arr.length-1; i++) { //0~9번지 중 8번지까지
for (int j=i+1; j<arr.length; j++) { //0~9번지 중 9번지까지
if( arr[i] > arr[j]) { //내림차순은 arr[i] < arr [j]
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
System.out.println("----오름차순 정렬 후----");
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i]+ " ");
}
3. 섞인 배열 정리(내림차순: 큰 수 부터)
for (int i=0; i<arr.length-1; i++) {
for(int j=i+1; j<arr.length; j++) {
if( arr[i] < arr[j] ) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
System.out.println("----내림차순 정렬 후----");
for (int i=0; i<arr.length; i++) {
System.out.print(arr[i]+ " ");
}
4. 배열을 섞고 다시 오름차순으로 정리
for (int i=0; i<arr.length; i++) {
arr[i] = (int)(Math.random()*45)+1;
System.out.print(arr[i]+" ");
}
for(int j=0; j<arr.length-1; j++) {
for (int k=j+1; k<arr.length; k++) {
if(arr[j] > arr[k]) {
int tmp = arr[j];
arr[j] = arr[k];
arr[k] = tmp;
}
}
}
System.out.println( );
System.out.println("섞고 정렬하면,");
for (int i=0; i<arr.length; i++) {
System.out.print(arr[i]+ " ");
}
'JAVA > java 코드' 카테고리의 다른 글
[JAVA] 구구단 (0) | 2023.03.26 |
---|---|
[JAVA] 5자리 수를 입력 받아 → 반대로 출력하고 / 각 자리 수 합계 출력 (0) | 2023.03.26 |
[JAVA] 배열의 합계,평균,최대,최소 출력 / 랜덤 값 배열 저장-출력 (0) | 2023.03.26 |
[JAVA] 배열에서 짝수만 출력 / 짝수 값을 갖는 배열 출력 (0) | 2023.03.26 |
[JAVA] 합계 + 평균 + 등급 구하기 (0) | 2023.03.25 |