选择排序法也算是枚举法的应用,就是反复从未排序的数列中去除最小的元素加入到另一个数列中,最后的结果即为已排序的数列。选择排序法可以使用两种方式排序,即在所有的数据中,若从大到小排序,则将最大值放入第一个位置;若是从小到大排序,则将最小值放入到第一个位置。例如以下示例:
从数列56 24 86 63 16按从小到大的顺序排列,其验算流程大致为以下步骤:
package com.lifly.algorithm.sort;
/**
* @Author: LiFly
* @Date: 2023/6/25 23:10
* @Description: 快速排序
*/
public class QuickSort {
public static void main(String[] args) {
int[] data = {56, 24, 86, 63, 16};
System.out.print("原始数据为: ");
QuickSort quickSort = new QuickSort();
quickSort.showData(data);
quickSort.sort(data);
}
/**
* 打印输出
*
* @param data
*/
public void showData(int[] data) {
for (int datum : data) {
System.out.print(datum + " ");
}
System.out.println("\n");
}
/**
* 快速排序
*
* @param data
*/
public void sort(int[] data) {
for (int i = 0; i < data.length; i++) {
int smallest = data[i];
int index = i;
int temp;
for (int j = i+1; j < data.length; j++) {
if (smallest > data[j]) {
smallest = data[j];
index = j;
}
}
temp = data[index];
data[index] = data[i];
data[i] = temp;
System.out.print("第"+(i+1)+"次排序结果: ");
for (int datum : data) {
System.out.print(datum+" ");
}
System.out.println("\n");
}
System.out.println("\n");
}
}
结果显示
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务