选择排序 - 直接选择排序
发布日期:2021-09-28 18:46:38 浏览次数:10 分类:技术文章

本文共 867 字,大约阅读时间需要 2 分钟。

    直接选择排序思路很简单,就是不停的拿当前假设的最小值与后面的元素对比,如果对比值更小,就交换位置。它需要经过N-1趟比较。

    

    每轮都会将本轮最小值放在最前面,直至游标移动至最后一位。

package com.h3c.paixu;public class 直接排序Demo {	public static void main(String[] args) {		// 1. 初始化一个无序数组		int[] myArr = { 23, 35, 73, 27, 4, 77, 54, 84, 47, 56, 34, 32, 75, 32,				31, 0, 99, 7, 54, 57 };		for (int k = 0; k < myArr.length - 1; k++) {			myArr = 直接排序(k, myArr);			for (int i : myArr) {				System.out.print(i + " ");			}			System.out.println("");		}	}	/**	 * 把最小的元素提前	 * 	 * @param startIndex	 * @param arr	 * @return	 */	public static int[] 直接排序(int startIndex, int[] arr) {		// 临时交换的元素		int tempValue = arr[startIndex];		// 交换用的临时变量		for (int n = startIndex + 1; n < arr.length; n++) {			if (arr[startIndex] > arr[n]) {				arr[startIndex] = arr[n];				arr[n] = tempValue;				tempValue = arr[startIndex];			}		}		return arr;	}}
时间效率为O(n^2),空间效率为O(1),直接选择排序是不稳定排序。

转载地址:https://blog.csdn.net/h3c4lenovo/article/details/8577921 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:选择排序——堆排序
下一篇:Java Threads 多线程10分钟参考手册

发表评论

最新留言

很好
[***.229.124.182]2024年04月17日 08时47分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章