컴퓨터 정렬 알고리즘 자바 코드를 알 수 있을까요?
안녕하세요 ^^
컴퓨터 알고리즘 공부를 하고 있는데, 다양한 정렬들에 대한 PSEUDO코드가 있더라구요
혹시 자바로 구현된 버블정렬, 선택정렬에 대한 실제 코드를 알려주실 수 있나요?
PSEUDO코드만으로는 실제 코드 만들기가 어렵네요 ㅜㅜ
55글자 더 채워주세요.
1개의 답변이 있어요!
기초적이 알고리즘은 코드가 길지가 않다보니 블로그나 github에 많이 올라와 있습니다.
버블정렬 코드입니다.
public class BubbleTest { public static void main(String[] args) { int[] a = {254,3,213,64,75,56,4,324,65,78,9,5,76,3410,8,342,76}; int b; for(int i = 0 ; i < a.length ; i ++) { for(int j = 0 ; j < a.length -i -1 ; j ++) { if(a[j]>a[j+1]) { b = a[j]; a[j] = a[j+1]; a[j+1] = b; } } } for(int i = 0 ; i < a.length ; i ++) { System.out.println(a[i]); } } }출처 : https://dpdpwl.tistory.com/14
선택정렬 코드 입니다.
public class Selection { public void sort(int[] data){ int size = data.length; int min; //최소값을 가진 데이터의 인덱스 저장 변수 int temp; for(int i=0; i<size-1; i++){ // size-1 : 마지막 요소는 자연스럽게 정렬됨 min = i; for(int j=i+1; j<size; j++){ if(data[min] > data[j]){ min = j; } } temp = data[min]; data[min] = data[i]; data[i] = temp; } } public static void main(String[] args) { Selection selection = new Selection(); int data[] = {66, 10, 1, 99, 5}; selection.sort(data); for(int i=0; i<data.length; i++){ System.out.println("data["+i+"] : " + data[i]); } } }