개념)
1.앞의 값과 바로 뒤에 값을 비교한다.
2. 뒤에 값이 더 작다면 자리를 바꾼다. (아니라면 변경 x)
정렬 Code)
public static int[] bubbleSort(int[] nums){
for(int i=0; i<nums.length; i++){
for(int j=0; j<(nums.length-1) - i; j++){
if(nums[j] > nums[j+1]){
swap(nums,j,j+1);
}
}
}
return nums;
}
public static void swap(int[] nums, int i, int j){
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
(전체) Code)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
class Test{
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String s = bf.readLine();
StringTokenizer st = new StringTokenizer(s);
int[] nums = new int[st.countTokens()];
for(int i=0; i<nums.length; i++){
nums[i] = Integer.parseInt(st.nextToken());
}
nums = bubbleSort(nums);
print(nums);
}
public static int[] bubbleSort(int[] nums){
for(int i=0; i<nums.length; i++){
for(int j=0; j<(nums.length-1) - i; j++){
if(nums[j] > nums[j+1]){
swap(nums,j,j+1);
}
}
}
return nums;
}
public static void swap(int[] nums, int i, int j){
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
public static void print(int[] nums) throws IOException{
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
for(int num : nums){
bw.write(num+ " ");
}
bw.flush();
bw.close();
}
}
'Java > 코딩테스트' 카테고리의 다른 글
[JAVA] List<String> 정렬 (기본 정렬, 커스텀 정렬) (0) | 2025.02.14 |
---|---|
[JAVA] 배열 Stream 활용해서 풀기 (1) | 2025.01.20 |
[java] 그래프 만들기 ( 인접 행렬 구현) (0) | 2024.06.26 |
삽입 정렬(JAVA) (0) | 2024.04.01 |
선택 정렬(JAVA) (0) | 2024.04.01 |