[JAVA] 정렬(sorting), 오버로딩(overloading)

seonjeong·2022년 12월 27일
0

Java

목록 보기
8/26
post-thumbnail

💖 정렬(sorting)

: 숫자의 크기 순으로 정렬하는 방법

  • 낮은 숫자부터 정렬 -> 오름차순
  • 높은 숫자부터 정렬 -> 내림차순

🔥 선택정렬

Scanner sc = new Scanner(System.in);

int number[] = null;
int count;
int updown;

// 함수의 초기화
count = 0;
updown = 0;

// 정렬하고 싶은 숫자의 갯수
System.out.print("정렬하고 싶은 수의 갯수 =");
count = sc.nextInt();

// 배열에 그 갯수에 맞게 할당
number = new int[count];

// 숫자들을 입력
for(int i = 0; i < count; i++) {
	System.out.print((i + 1) + "번째 수 = ");
    number[i] = sc.nextInt();
}

// 오름(1)/내림(2)
System.out.print("오름(1)/내림(2) = ");
updown = sc.nextInt();

int temp;
for(int i = 0; i < number.length - 1; i++) {
	for(int j = i + 1; j < number.length; j++) {
		if(updown == 1) {	// 오름
    		if(number[i] > number[j]) {
            	swap(number, i, j);
            }
        } else {	// 내림
        	if(number[i] < number[j]) {
            	swap(number, i, j);
            }
        }
    }
}

if(updown == 1) {
	System.out.println("오름차순정렬입니다");
} else {
	System.out.println("내림차순정렬입니다");
}
for(int i = 0; i < number.length; i++) {
	System.out.println("number["+i+"] = " + number[i]);
}

// function
static void swap(int number[], int i, int j) {
	int temp;
    
	temp = number[i];
    number[i] = number[j];
    number[j] = temp;
}

// console
/*
정렬하고 싶은 수의 갯수 = 5
1번째 수 = 20
2번째 수 = 2
3번째 수 = 86
4번째 수 = 47
5번째 수 = 3
오름(1)/내림(2) = 1
오름차순정렬입니다
number[0] = 2
number[1] = 3
number[2] = 20
number[3] = 47
number[4] = 86
*/

💖오버로딩(overloading)

함수명은 같고 매개변수(parameter)의 갯수나 자료형이 다른 함수를 의미한다
이름만 같은 다른 함수, parameter로 구분

예시

func();
func('A');
func(0);
func('B', 2);
func(55, 'G');

// function
static void func() {
	System.out.println("func() 호출");
}

static void func(char c) {
	System.out.println("func(char c) 호출");
}

static void func(int i) {
	System.out.println("func(int i) 호출");
}

static void func(char c, int i) {
	System.out.println("func(char c, int i) 호출");
}

static void func(int i, char c) {
	System.out.println("func(int i, char c) 호출");
}

// 안되는 경우
static void func(char cc, int ii) {		// -> 인수만으로 구분이 안된다
	System.out.println("func(char cc, int ii) 호출");
}

static int func() { 	// -> 리턴값으로 구분할 수 없다
	System.out.println("func() 호출");
}

// 가변인수
static int sum(int...number) {	// -> 배열처럼 사용됨
	int s = 0;
    for(int i = 0; i < number.length; i++) {
    	s += number[i];
    }
	return s;
}

// console
/*
func() 호출
func(char c) 호출
func(int i) 호출
func(char c, int i) 호출
func(int i, char c) 호출
*/
profile
🦋개발 공부 기록🦋

0개의 댓글

관련 채용 정보