본문 바로가기

Algorithms/Basic

정렬 알고리즘(버블, 선택, 삽입)

버블정렬 코드


Main.class

public class Main {

public static void main(String[] args) {
// write your code here
int[] data = {6, 78, 1, 45, 3, 2, 8,11,66};
new BubbleSort(data).sort();
System.out.println(Arrays.toString(data));
}
}


BubbleSort.class

public class BubbleSort {

private int[] data;

public BubbleSort(int[] data) {
this.data = data;
}

public void sort() {
for (int i = 0; i < data.length - 1; i++) {
for (int j = 0; j < data.length - 1 - i; j++) {
if (data[j] > data[j+1]){
int tmp = data[j+1];
data[j+1] = data[j];
data[j] = tmp;
}
}
}
}
}


선택정렬


InsertionSort.class

public class SelectionSort {

private int[] data;

public SelectionSort(int[] data) {
this.data = data;
}

public void sort() {
for (int i = 0; i < data.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < data.length; j++) {
if (data[minIndex] > data[j]) {
minIndex = j;
}
System.out.println(j);
}
int tmp = data[minIndex];
data[minIndex] = data[i];
data[i] = tmp;
}
}
}


삽입정렬

InsertionSort.class

public class InsertionSort {

private int[] data;

public InsertionSort(int[] data) {
this.data = data;
}

public void sort() {
for (int i = 0; i < data.length; i++) {
int current = data[i];
int j = i - 1;
while (j >= 0 && data[j] >= current) {
data[j + 1] = data[j];
j--;
}
data[j + 1] = current;
}
}
}


'Algorithms > Basic' 카테고리의 다른 글

Stable / Unstable Sort의 차이  (0) 2017.11.29
Introduction to Algorithms (19/103)  (0) 2017.11.28
Introduction to Algorithms (11/103)  (0) 2017.11.27
Udemy 강의  (0) 2017.11.27