Programming/Java

swap과 정렬 알고리즘

mj73 2021. 7. 5. 15:11

1. swap

//a, b, temp는 모두 int형 변수이다.

if(a>b){
  int temp = a;
  a = b;
  b = temp;
}

 

 

 

2. 정렬 알고리즘

import java.util.Scanner;

public class BubbleSort{
  public static void main(String[] args){
    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    //개수를 입력받아서 저장
    
    int [] data = new int [n];
    
    for(int i=n-1; i>0; i++){
      for(int j=0;j<i;j++){
        if(data[j] > data[j+1]){
          int temp = data[j];
          data[j] = data[j+1];
          data[j+1] = temp;
        }
      }
    }
    System.out.println("정렬: ");
    for(int i=0; i<n; i++){
      System.out.println(data[i]);
    }
  }
}

 

 

 

 

 

3. 정수를 입력받을 때마다 배열에 정렬시키게 한다

import java.util.Scanner;

public class SortEx{
  public static void main(String[] args){
    Scanner scanner = new Scanner(System.in){
    int n = scanner.nextInt();
    int[] data = new int [n]; //개수부터 입력받고 배열 생성
    
    for(int i=0; i<n; i++){ //배열의 개수만큼 반복
      int temp = scanner.nextInt();
      //추가된 정수를 temp에 저장
      
      //배열의 뒤에서부터 temp와 비교함
      int j = i-1; 
      while(data[j]>temp){
        data[j+1]= data[j]; //j번지에 있던 정수를 j+1로 이동(= 뒤로 이동)
        j--;
      }
      data[j+1] = temp; //data[j]값이 temp보다 작은 경우에 그 오른쪽에 저장
      
      //정렬된 값들 출력
      for(int k=0; k<=i; k++)
        System.out.print(data[k] + " "); //줄 바꿈 없이
      System.out.println(); //줄바꿈
    }
    scanner.close(); 
  }
}