sub_title
 JSP/Servlet
제   목 JAVA 자바 선택정렬 (Selection Sort)
작성자 높이뜬새 등록일 2008-06-19 15:06:16 조회수 12,950
첨부화일 SelectionSort.java   
[JAVA] 자바 선택정렬 (Selection Sort)

※ 경고
높이뜬새의 모르는 사람이 없는 팁시리즈 입니다.
이 팁시리즈는 지면낭비라는 항의시에 즉각 중단됩니다.

거품정렬(Bubble Sort)이 옆에 있는 놈이 나보다 큰가를 비교해서 맞바꾸는 형식이라면 선택정렬(Selection Sort)은 일렬로 줄 세워놓고 제일 큰놈, 또는 제일 작은 놈을 맨 앞에다 가져다 놓는 방식입니다. 처음에 제일인 놈을 가져다 놓았으니 두번째는 첫번째 가져다 놓은 놈은 제외해야 겠지요?

예를 들면 17, 33, 87, 99, 3, 48 들의 숫자 열에서 제일 큰 99 를 앞에다 데려다 놓으면 99, 17, 33, 87, 3, 48 이 되겠지요? 그 다음에는 처음에 대려다 놓은 99는 제외하고 두번째로 큰 놈인 87을 대려다 놓습니다.
이렇게 말이지요 99, 87, 17, 33, 3, 48

결국 이런식으로 계속 돌다보면 마지막에는 제일 작은 3이 남게 되고 99, 87, 48, 33, 17, 3 과 같이 자연스레 내림차순 정렬되어 있을겁니다. 처음에 제일 작은놈을 데려다 놓으면 오름차순 정렬이 되는건 당연한 거구요^^

어째 로직은 쉽지만 속도는 느릴것 같지 않습니까? 네 맞습니다. 거품정렬 다음으로 느린 정렬방법입니다.

/* ---------- 선택정렬(Selection Sort)---------------*/
import java.util.*;

public class SelectionSort {

public static void main(String[] args) {
int numArray[] = new int [10];


for(int i = 0; i < 10; i++ )
{
numArray[i] = (int)(Math.random()*100+1); // 1부터 100까지의 난수발생
}

SelectionSortASC(numArray); //오름차순 정렬
System.out.println("오름차순 정렬: ");
for(int j=0; jSystem.out.print(numArray[j] + " ");
}

System.out.println("\r\n");

SelectionSortDESC(numArray); //내림차순 정렬

System.out.println("내림차순 정렬: ");

for(int j=0; jSystem.out.print(numArray[j] + " ");
}
}

// --- numArray를 오름차순 정렬
private static void SelectionSortASC(int[] numArray) {

for(int i = 0; i < numArray.length-1; i++ )
{
int minIndex = i;
int temp = numArray[i];

// i번째 이후의 값들중 최소값을 Temp에 구해놓는다
for(int j=i+1; j < numArray.length; j++ ){
if ( numArray[j] < temp)
{
minIndex = j;
temp = numArray[j];
}
}
numArray[minIndex] = numArray[i]; // numArray[i]의 값과 temp의 값을 교환
numArray[i] = temp;
}

}

// --- numArray를 내림차순 정렬
private static void SelectionSortDESC(int[] numArray) {

for(int i = 0; i < numArray.length-1; i++ )
{
int maxIndex = i;
int temp = numArray[i];

// i번째 이후의 값들중 최대값을 Temp에 구해놓는다
for(int j=i+1; j < numArray.length; j++ ){
if ( numArray[j] > temp)
{
maxIndex = j;
temp = numArray[j];
}
}
numArray[maxIndex] = numArray[i]; // numArray[i]의 값과 temp의 값을 교환
numArray[i] = temp;
}

}
}



From : 높이뜬새(www.webmadang.net)

 
0
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
110  JSP 파일 확장자 추출하기   admin 웹마당넷 1 / 0 23034 2009-02-25
109  다수의 페이지에 폼(Form) 전송하기   admin 웹마당넷 0 / 0 15672 2009-01-27
108  자바 프로그래밍으로 온라인 XML 데이터 검색하기   member 우슬초 0 / 0 14722 2009-01-18
107  톰캣[Tomcat]에서 세션타임 설정하기   member 티란투라 0 / 0 15234 2009-01-18
106  JSP URL클래스를 이용한 웹페이지 데이터 읽기   admin 웹마당넷 0 / 0 18390 2009-01-16
105  JSP 일정 시간이 지나면 자동으로 폼(Form) 전송하기   admin 웹마당넷 3 / 0 22188 2009-01-08
104  JSP 팝업창에 Form 태그내의 값 넘기기   admin 웹마당넷 0 / 0 30093 2008-12-19
103  JSP setContentType 메소드와 MIME 타입   admin 웹마당넷 2 / 1 46912 2008-09-22
102  [JSP] getParameterValues() 예제   member 우슬초 0 / 0 24921 2008-09-02
101  JAVA 정규표현식에 관한 자료   member 우슬초 0 / 0 10190 2008-09-01
100  JSP 월 몇주 요일에 해당하는 날짜구하기   member 티란투라 1 / 0 16229 2008-08-26
99  JAVA Vector나 ArrayList에 담은 자료를 Object 배열로 변환하기   member 티란투라 0 / 0 17319 2008-08-19
98  JSP 이전 이후 날짜 구하기   member 티란투라 0 / 0 13313 2008-08-10
97  JSP 오늘 날짜/시/분/초/요일 구하기   member 티란투라 0 / 0 29852 2008-08-09
96  JSP split 메소드를 이용한 문자열 분리하기   member 티란투라 0 / 0 39410 2008-08-05
95  JSP 특정 문자열(Pattern)의 갯수 구하기   member 티란투라 0 / 1 21503 2008-08-05
94  JSP - Java JDBC Performance Tip(1)-Select Speed up!   member 사라마음 0 / 0 13710 2008-07-29
93  JSP - MySQL 한글깨짐 해결   member 사라마음 0 / 1 23553 2008-07-29
92  CEWOLF : jsp에서 차트, 그래프 구현하기 첨부파일   member 티란투라 0 / 0 13593 2008-07-22
91  JSP URLConnection 객체를 이용한 입력스트림 제어   member 티란투라 0 / 0 15888 2008-07-15
90  JSP 파일쓰기 - 파일읽기   member 티란투라 0 / 0 36908 2008-07-10
89  JSP 특정 디렉토리에 있는 파일명들 구하기   member 티란투라 0 / 0 22493 2008-07-10
88  JSP 파일삭제   member 티란투라 1 / 0 20099 2008-07-10
87  JSP 달력(Calendar) 입니다. 이미지 첨부파일   member 티란투라 0 / 8 26115 2008-06-23
86  JAVA 자바 선택정렬 (Selection Sort) 첨부파일   member 높이뜬새 0 / 0 12950 2008-06-19
write
[2] [3] [4] [5] button