选择排序

xiaoxiao2021-02-28  29

/** * Created by Administrator on 2017/11/22 0022. * <p> * 选择排序的时间复杂度是N方级别的 * 思想: * 1、从当前序列中找出最小的元素和第一位的数据元素进行比较,满足条件则交换。 * 2、继续从剩下的序列中找出最小的元素和第2位的数据元素进行比较,满足条件则交换。 * 3、依次类推,直到找完该序列的最后一个元素。 */ public class SelectSort { public static final String TAG = "SelectSort"; private SelectSort() { } /** * 从小到大 * * @param in * @return */ public static int[] sort(int[] in) { if (null == in) { throw new NullPointerException("参数不能为空!"); } int size = in.length; for (int i = 0; i < size; i++) { int min = i;//存放最小值的索引 for (int j = i + 1; j < size; j++) { if (in[min] > in[j]) { min = j; } } //交换数据 swap(in, i, min); } return in; } private static void swap(int[] arr, int i, int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } }
转载请注明原文地址: https://www.6miu.com/read-2150061.html

最新回复(0)