IT/자바

오름차순, 내림차순

Beautifulkim 2018. 4. 30. 16:25

MyMain_배열1_2.java

MyArrays.java



package mymain;


//import java.util.Arrays;


import myutil.MyArrays;


public class MyMain_배열1_2 {


public static void main(String[] args) {

//1차원배열 초기화 : 초기화할 때 int[] 에 int[5]로 쓰면 안됨. 

//int [] mr = new int[] { 10,20,30,40,50 };

int [] mr = { 10,20,30,40,50 };

MyArrays.display_array(mr);


//String [] tti_array = new String[] { "원숭이", "닭", "개", "돼지"};

// 0   1    2     3     4    5      6       7     8    9     10    11

String [] tti_array = { "원숭이","닭","개","돼지","쥐","소","호랑이","토끼","용","뱀", "말", "양"};

// 10간 12지 0   1    2    3    4    5    6    7    8    9    10   11

String [] gan_array = { "경","신","임","계","갑","을","병","정","무","기" };

String [] ji_array = { "신","유","술","해","자","축","인","묘","진","사","오","미" };

MyArrays.display_array(gan_array);


int year = 2018;

int tti_index = year%12;

String tti = tti_array[tti_index];

System.out.println(tti);

String ganji = String.format("%s%s년", gan_array[year%10], ji_array[year%12]);

System.out.printf("%d년도 (%s)\n", year, ganji);

//mr = new int[] {5,3,1,2,8,6}; //초기화 다시 할 경우 이렇게 작성 해야 함


//기존배열변수에 새로운 배열객체를 초기화형태로 생성시 아래방법

int [] mr1;

mr1 = new int[] {5,3,1,2,8,6}; //초기화 다시 할 경우 이렇게 작성 해야 함

System.out.println("---before sort---");

MyArrays.display_array(mr1);

System.out.println("---after(asc) sort---");

//기존클래스에 기능이 있다.

//Arrays.sort(mr1);// Arrays 함수내에 srot가 있음

//MyArrays.display_array(mr1);

//내가 구현한것

MyArrays.sort_asc(mr1);

MyArrays.display_array(mr1);

System.out.println("---after(desc) sort---");


//내가 구현한것

MyArrays.sort_des(mr1);

MyArrays.display_array(mr1);


}


}




==============================
package myutil;

public class MyArrays {
//1차원 배열 출력
//이 함수에서 mr은 지역변수라서 함수 호출되고 종료되면 사라짐
public static void display_array(int [] mr) {

System.out.printf("[");
for ( int i=0; i<mr.length; i++ )
System.out.printf("%3d", mr[i] );
System.out.println(" ]");
}
public static void display_array(String [] mr) {

System.out.printf("[");
for ( int i=0; i<mr.length; i++ )
System.out.printf("%5s", mr[i] );
System.out.println(" ]");
}
//오름차순
public static void sort_asc(int [] mr) {
//selection sort(선택정렬)
for(int i=0;i<mr.length-1;i++) {// i 기준값으로 활용
for(int k=i+1;k<mr.length;k++) {
if(mr[i] > mr[k]) {//앞(기준)값이 크냐?
int im = mr[i];
mr[i] = mr[k];
mr[k] = im;
}
}
}
}
//내림차순
public static void sort_des(int [] mr) {
//selection sort(선택정렬)
for(int i=0;i<mr.length-1;i++) {// i 기준값으로 활용
for(int k=i+1;k<mr.length;k++) {
if(mr[i] < mr[k]) {//앞(기준)값이 크냐?
int im = mr[i];
mr[i] = mr[k];
mr[k] = im;
}
}
}
}
}