Java Core - Sắp xếp chọn trong java

Sắp xếp chọn (Selection Sort) trong java

Định nghĩa sắp xếp chọn: Chọn phần tử nhỏ nhất đưa về vị trí đầu tiên của dãy hiện tại và không cần quan tâm đến nó nữa, khi đó dãy chỉ còn lại n-1 phần tử của dãy ban đầu, lúc đó dãy ta xét sẽ bắt đầu từ phần tử thứ 2 của mảng, chúng ta lập lại cho đến khi dãy hiện tại chỉ còn 1 phần tử.

ví dụ: sử dụng thuật toán Selection Sort sắp xếp dãy số theo thứ tự tăng dần.

Input: 18 9 33 4 84 32

Output: 4 9 18 32 33 84


Sắp xếp chọn (SelectionSort)

Chương trình sau dãy số theo tứ tự tăng dần bằng thuật toán sắp xếp chọn:

package com.hiepsiit.baitap;

import java.util.Scanner;

public class selectionSort {
	
	private static void nhap_mang(int []A, int n) {
		Scanner scn = new Scanner(System.in);
		for(int i=0; i<n; i++) {
			System.out.print("A[ "+i+" ]: ");
			A[i] = scn.nextInt();
		}
	}
	
	private static void xuat_mang(int []A, int n) {
		for(int i=0; i<n; i++) {
			System.out.println("A[ "+i+" ]: "+A[i]);
		}
	}
	
	private static void hoan_vi(int []A, int a, int b) {
		int temp = A[a];
		A[a] = A[b];
		A[b] = temp;
	}
	
	private static void sap_xep_chon(int []A, int n) {
		for(int i=0; i<n-1; i++) {
			int minArr = i;
			for(int j=i+1; j<n; j++) {
				if(A[minArr]>A[j]) {
					minArr = j;
				}
			}
			if(i!=minArr)
				hoan_vi(A, minArr, i);
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int []A;
		int n=0;
		Scanner scn = new Scanner(System.in);
		System.out.print("Nhập số: ");
		n = scn.nextInt();
		A = new int[n];
		nhap_mang(A, n);
		System.out.println("Mảng sau khi sắp xếp (Selection Sort)");
		sap_xep_chon(A, n);
		xuat_mang(A, n);
	}

}

Kết quả: