석차구하기
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));