초급JAVA 5 - 배열2

voilà!·2021년 10월 31일
0

초급JAVA

목록 보기
10/24
  • 석차구하기 : 점수를 비교해 작은 점수의 등수를 증가시키는 방식
  • 선택정렬 : 가장 작은 숫자를 찾아서 앞으로 보내는 방식
  • 버블정렬 : 바로 뒤의 숫자와 비교해서 큰 수를 뒤로 보내는 방식
  • 삽입정렬 : 두번째 숫자부터 앞의 숫자들과 비교해서 큰수는 뒤로 밀고 중간에 삽입하는 방식

석차구하기

        int rank[] = new int[arr.length];
	for(int i = 0; i < arr.length; i++){
		rank[i] = 1; //비교하기 전에는 1등
	}
	for(int i = 0; i < arr.length; i++){   //모든 사람의 점수를 다 비교하려면 for문 하나 더 만들어서 비교해야됨 / i = 나, j = 다른사람
		for(int j = 0; j < arr.length; j++){
			if(arr[i] < arr[j]){
				rank[i]++;
			}
		}
	}
	for(int i = 0; i < arr.length; i++){
		System.out.println(arr[i]+ ":" + rank[i] + "등");
	}
}

선택정렬

        for(int i = 0; i < arr.length; i++){
    	int min = i; //첫번째 값의 위치
    	for(int j = i; j < arr.length; j++){
    		if(arr[j] < arr[min]){ //최소값의 위치 찾기
    			min = j;
    	  }
    			int temp = arr[i];
    			arr[i] = arr[min];
    			arr[min] = temp; //맨 앞 인덱스 i랑 최소값의 위치 바꾸기
    	  }	
    	}
    }
	System.out.println(Arrays.toString(arr));

버블정렬

		for (int i = 0; i < arr.length - 1; i++) { // i가 9까지 돌기 때문
		boolean flag = false;
		for (int j = 0; i < arr.length - 1 - i; j++) { // j는 8까지 돈다 (-1) ,
														// 증가하는 수도 빼줘야 함(-i)
			if (arr[j] > arr[j + 1]) { // 앞에 있는 숫자가 더 큰 경우 자리 바꾸기
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
				flag = true;
			}
		}
		if (flag) {
			break;
		}
	}
	System.out.println(Arrays.toString(arr));

0개의 댓글