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ả: