피드로 돌아가기
새로워지기·서른의 생활코딩

sort /select sort

NS
normalstory
표지 이미지

package d_array;


public class Sortbasic {

public static void main(String[] args) {

/*

1. 정렬 

- 어떠한 데이터를 빠르고 쉽게 찾기위해 일정한 순서대로 데이터를 가지런히 나열하는 작업

- 검색을 찾기

- 버블정렬, 선택정렬, 삽입정렬

2. 버블정렬bubble sort

- '인접한 데이터'간에 교환이 계속적으로 일어나면서 정렬이 이루어진다

- 오름차순 기준으로 가장 큰 값을 뒤로 보낸다. 

*/

// int[] array = new int[]{5,2,3,1,4};

// for(int i=0; i<5; i++){

// System.out.print(array[i] );

// if(array[0]>array[i]){

// array[i]=array[0];

// }

// }

// int[] array = new int[]{5,2,3,1,4};

// int max = array[0];

// for(int i=0; i<array.length;i++){

// if(array[0]<array[i]){

// array[0]=array[i];

// }

// System.out.print(array[i]);

// }

// int[] array = new int[]{5,2,3,1,4};

// int first = 5;

// if(array[1]>array[2]){

// array[1]=array[0];

// first=array[1];

// System.out.print(array[0]);

// }

// int[] array = new int[]{5,2,3,1,4};

////1회전

// if(array[0]>array[1]){

// //값을 자리를 바꾼다

// int temp = array[0];

// array[0]=array[1];

// array[1]=temp;

// }

// if(array[1]>array[2]){

// //값을 자리를 바꾼다

// int temp = array[0];

// array[1]=array[2];

// array[2]=temp;

// }

// if(array[2]>array[3]){

// //값을 자리를 바꾼다

// int temp = array[0];

// array[0]=array[1];

// array[1]=temp;

// }

// if(array[3]>array[4]){

// //값을 자리를 바꾼다

// int temp = array[0];

// array[0]=array[1];

// array[1]=temp;

// }

// if(array[4]>array[i]){ //자리가 없다. 

// //값을 자리를 바꾼다

// }


// 비교 기준은 마지막 방까지 안간다

// 기준이 전체 크기보다 하나 적은 1번이 기준이 된다

// 전체 길이 -1

// int[] array = new int[]{5,2,3,1,4};

// for(int i=0; i<array.length-1;i++){ // i는 기준이 되는 방번호

// if(array[i]>array[i+1]){

// //값을 자리를 바꾼다

// int temp = array[i];

// array[i]=array[i+1];

// array[i+1]=temp;

// }

// System.out.print(array[i]);

// }

// int[] array = new int[]{5,2,3,1,4};

////1회전

// for(int i=0; i<array.length-1;i++){

// if(array[i]>array[i+1]){

// //값을 자리를 바꾼다

// int temp = array[i];

// array[i]=array[i+1];

// array[i+1]=temp;

// }

// System.out.print(array[i]);

// for(int j=0; j<array.length;j++){

// System.out.print(array[j]);

// }

// System.out.println("--1회전");

// }

////2회전

// for(int i=1; i<array.length-1;i++){

// if(array[i]>array[i+1]){

// //값을 자리를 바꾼다

// int temp = array[i];

// array[i]=array[i+1];

// array[i+1]=temp;

// }

// System.out.print(array[i]);

// for(int j=0; j<array.length;j++){

// System.out.print(array[j]);

// }

// System.out.println("--2회전");

// }

////3회전

// System.out.println("");

// for(int i=2; i<array.length-1;i++){

// if(array[i]>array[i+1]){

// //값을 자리를 바꾼다

// int temp = array[i];

// array[i]=array[i+1];

// array[i+1]=temp;

// }

// System.out.print(array[i]);

// for(int j=0; j<array.length;j++){

// System.out.print(array[j]);

// }

// System.out.println("--3회전");

// }

////4회전

// System.out.println("");

// for(int i=3; i<array.length-1;i++){

// if(array[i]>array[i+1]){

// //값을 자리를 바꾼다

// int temp = array[i];

// array[i]=array[i+1];

// array[i+1]=temp;

// }

// System.out.print(array[i]);

// for(int j=0; j<array.length;j++){

// System.out.print(array[j]);

// }

// System.out.println("--4회전");

// }


// int[] array = new int[]{5,2,3,1,4};

// System.out.println("");

// for(int j=0; j<array.length-1-j;j++){  

//-j = 확정될 수록 줄여준다

// = 버블링 하나(for문 하나)가 완료되었을때

// System.out.println("--4회전");

// for(int i=0; i<array.length-1;i++){

// if(array[i]>array[i+1]){

// //값을 자리를 바꾼다

// int temp = array[i];

// array[i]=array[i+1];

// array[i+1]=temp;

// }

// for(int p=0; p<array.length;p++){

// System.out.print(array[p]);

// }

// }

// }

// 최종

// int[] array = new int[]{5,2,3,1,4};

//

// for(int j=0; j<array.length-1;j++){//회전 수

// System.out.println(" --- "+j+"회전");

// for(int i=0; i<array.length-1-j;i++){//버블 수

// if(array[i]>array[i+1]){

// //값을 자리를 바꾼다

// int temp = array[i];

// array[i]=array[i+1];

// array[i+1]=temp;

// }

// for(int p=0; p<array.length-1;p++){

// System.out.print(array[p]);

// }

// System.out.println();

// }

// }

/*select sort : 최소값 + 뭔가 하나더 추가 */

//가장 작은 수를 맨앞으로 보낸다

//53142

// int[] num = new int[]{5,3,1,4,2};

//

// int fst = num[0]; //최소값 구하는 과정for(if(min = num[i];))에서 덮어써지기 전에 백업한다 

// int min = 0;

// int no =0;

// for(int i=1; i<num.length-1;i++){ //앞뒤 쌍으로 검색하는 반복문 

// if(num[0]>num[i]){ //최소값 구하는 과정

// no = i; //반복문 횟수 = 방번호 = 최소값 구하는 과정

// min = num[i]; //생략?최소값 변수에 최소값을 백업한다

// }

// num[0]=min;  //기준으로 시작한 자리  //생략?기준 자리에 최소값 변수를 기재한다

// }

// num[no]=fst;// 위치! 자리만 들고왔다. for 밖에서 연산

//

// System.out.println("fst> "+fst); //fst> 3

// System.out.println("min> "+min); //min> 1

// System.out.println("min room no> "+no); //min room no> 2

//

// System.out.println("");

// for(int p=0; p<num.length;p++){

// System.out.print(num[p]);

// }

// int[] num = new int[]{5,3,1,4,2};

//

// int fst = num[0]; //3.최소값 방 이동으로 인해 지워진 값 백업

// int no =0;

// for(int i=1; i<num.length-1;i++){ //1.최소값 구하고, 방 이동(최소값)

// if(num[0]>num[i]){

// num[0] = num[i];

// no = i; //2.최소값 방 자리 찾기(최소값 자리 = 반복문 횟수)

// }

// }

// num[no]=fst; //3.최소값 방 자리로 백업(지워질뻔한) 값 이동해서 살리기

int[] num = new int[]{5,3,1,4,2};

for(int j=0; j<num.length-1; j++){

int fst = num[j]; 

int no =j;

for(int i=1; i<num.length-1;j++){

if(num[0]>num[i]){

num[0] = num[i];

no = i;

}

}

num[no]=fst;

for(int p=0; p<num.length;p++){

System.out.print(num[p]);

}

}




}

}



친절한 찰쓰씨
글쓴이
친절한 찰쓰씨
친절한 찰쓰씨 · 일상 UX 디자이너
기획·디자인·단상을 조용히 기록합니다.
작가 페이지에서 더 보기

이어서 읽기

새로워지기

꾸준히, 오래, 지치지 않고

Mar 31, 2026·8
새로워지기

테크 라이프 발란스

Feb 7, 2026·3
새로워지기

휴탈리티 박정렬

Feb 7, 2026·11