선택정렬과 버블정렬에 대해 알아보겠습니다.
먼저 선택정렬(Selection Sort)입니다.
다음은 버블 정렬(Bubble Sort)입니다.
설명은 그림을 통해 이해하셨을 것이라 생각합니다.
자바 정렬 코드입니다.
public class SortingTest { public static void main(String[] args) { int ran[] = new int[5]; for(int i=0; i<ran.length; i++){ ran[i] = (int)(Math.random()*100)+1; //Math.random은 실수이므로 형변환을 해준다. System.out.print(ran[i]+" "); }System.out.println(""); System.out.print("selection sort :"); for(int i=0; i<ran.length;i++){ for(int j=i+1; j<ran.length; j++){ if(ran[i]>ran[j]){ int imsi=ran[i]; ran[i]=ran[j]; ran[j]=imsi; } }System.out.print(ran[i]+" "); }System.out.println(""); System.out.print("bubble sort : "); for(int i=0; i<ran.length;i++){ for(int j=0; j<ran.length-1-i; j++){ if(ran[j]>ran[j+1]){ int imsi = ran[j]; ran[j]=ran[j+1]; ran[j+1]=imsi; } }System.out.print(ran[i]+" "); } }//main end }//class end
버블정렬 소스 추가
public class bubbleTest { public static void main(String[] args) { boolean isCheck = false; int ran[] = new int[5]; for(int i=0; i<ran.length; i++){ ran[i] = (int)(Math.random()*100)+1; //Math.random은 실수이므로 형변환을 해준다. System.out.print(ran[i]+" "); }System.out.println(""); while(true){ for(int i=0;i<=ran.length-2;i++){ if(ran[i]>ran[i+1]) { int temp = ran[i]; ran[i]=ran[i+1]; ran[i+1]=temp; isCheck = true; } } if(isCheck==false) { break; }else{ for(int k=0;k<=ran.length-1;k++) { System.out.print(ran[k]+" "); isCheck = false; } } } //while end }// main end } //class end
정렬의 대한 결과입니다.
다음은 삽입 정렬(Insertion Sort)입니다.
출처 - 사진 출처
'프로그래밍 > 알고리즘' 카테고리의 다른 글
백준 알고리즘 for문 사용해보기!! (0) | 2017.08.31 |
---|---|
백준 알고리즘 2609번 : 최대공약수와 최소공배수 구하기! (0) | 2017.08.22 |
백준 알고리즘 1929번 : 소수 구하기!! (0) | 2017.08.04 |
백준 알고리즘 1003번 피보나치 함수!! (0) | 2017.08.04 |
백준 알고리즘 2675번 : 문자열 반복 (0) | 2017.08.04 |