p264
1. 임의로 알파벳 5개 받아서 정렬 → ASC, DESC
Select sort
[X, U, Z, O, H]
[H, X, Z, U, O]
[H, O, Z, X, U]
[H, O, U, Z, X]
[H, O, U, X, Z]
[H, O, U, X, Z]
// Call By Reference(권장) → 배열, 클래스만 가능
static void getRand(char[] alpha)
{
for(int i=0; i<alpha.length; i++)
{
alpha[i] = (char)((int)(Math.random()*26)+65);
}
}
// 다른 방법
static char[] getRand()
{
char[] alpha = new char[5];
for(int i=0; i<alpha.length; i++)
{
alpha[i] = (char)((int)(Math.random()*26)+65);
}
return alpha;
}
// 처리(정렬) Select sort
// 리턴 형
static char[] sort(char[] alpha)
{
for(int i=0; i<alpha.length-1; i++)
{
for(int j=i+1; j<alpha.length; j++) // i보다 1칸 앞에서 비교 (i+1)
{
if(alpha[i]>alpha[j])
{
char temp = alpha[i];
alpha[i] = alpha[j];
alpha[j] = temp;
}
}
System.out.println(Arrays.toString(alpha));
}
return alpha; // 변경된 alpha
}
// 다른 방법
static void sort2(char[] alpha)
{
for(int i=0; i<alpha.length-1; i++)
{
for(int j=i+1; j<alpha.length; j++) // i보다 1칸 앞에서 비교 (i+1)
{
if(alpha[i]>alpha[j])
{
char temp = alpha[i];
alpha[i] = alpha[j];
alpha[j] = temp;
}
}
System.out.println(Arrays.toString(alpha));
}
}
// 출력
static void process()
{
// 다른 방법
char[] alpha = getRand();
// char[] alpha = new char[5];
// getRand(alpha);
System.out.println(Arrays.toString(alpha));
// char[] result = sort(alpha);
sort2(alpha); // 다른 방법
System.out.println(Arrays.toString(alpha));
}
public static void main(String[] args) {
process();
}
2. 임의 정수 5개 합 구하기
[51, 7, 38, 68, 66]
합: 230
static void getRand(int[] arr)
{
for(int i=0; i<arr.length; i++)
{
arr[i] = (int)(Math.random()*100)+1;
}
}
static int sum(int[] arr)
{
int s=0;
for(int i:arr)
{
s+=i;
}
return s;
}
static void process()
{
int[] arr = new int[5];
getRand(arr);
System.out.println(Arrays.toString(arr));
int s = sum(arr);
System.out.println("합: " + s);
}
public static void main(String[] args) {
process();
}
static int[] getRand()
{
int[] arr = new int[5]; // **
for(int i=0; i<arr.length; i++)
{
arr[i] = (int)(Math.random()*100)+1;
}
return arr;
}
// 정수 5개 더하기
static int sum(int[] arr)
{
int result=0;
for(int i:arr)
{
result+=i;
}
return result;
}
// 결과 창에 띄울 것
static void process()
{
System.out.println(Arrays.toString(getRand()));
int s = sum(getRand());
System.out.println("합: " + s);
}
public static void main(String[] args) {
process();
}
3. 배열 → 난수
Bubble sort
변경 전:
[0, 0, 0, 0, 0]
변경 후:
[5, 13, 66, 86, 29]
정렬 후:
[5, 13, 29, 66, 86]
static void getRand(int[] arr)
{
for(int i=0; i<arr.length; i++)
{
arr[i] = (int)(Math.random()*100)+1;
}
}
static void sort(int[] arr)
{
for(int i=0; i<arr.length-1; i++)
{
for(int j=0; j<arr.length-1-i; j++)
{
if(arr[j]>arr[j+1]) // 방향에 따라 ASC, DESC 여부 변경
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
static void process()
{
int[] arr = new int[5];
System.out.println("변경 전: ");
System.out.println(Arrays.toString(arr));
System.out.println("변경 후: ");
getRand(arr);
System.out.println(Arrays.toString(arr));
System.out.println("정렬 후: ");
sort(arr);
System.out.println(Arrays.toString(arr));
}
public static void main(String[] args) {
process();
}
ASC, DESC 쉬운 방법
ASC
Arrays.sort(arr);
DESC
for(int i=arr.length-1; i>=0; i--)
{
System.out.print(arr[i]+ " ");
}
'수업' 카테고리의 다른 글
+16 멤버 변수(static, instance) (0) | 2022.05.24 |
---|---|
+15 객체 지향, 클래스 데이터형 제작 (1) | 2022.05.23 |
+14 메소드 정리(매개변수) (0) | 2022.05.20 |
+13 사용자 정의 클래스, 변수 설정 예제 (0) | 2022.05.19 |
+13 메소드 세분화 예제 (0) | 2022.05.19 |