十八、自己动手实现排序算法(6)-------- “ Select Sort 选择排序 ”

本文详细介绍了选择排序的基本原理,通过图解帮助理解其工作方式,并提供了具体的Java代码实现,帮助读者深入掌握这一简单直观的排序算法。

参考文章:

https://www.cnblogs.com/guoyaohua/p/8600214.html                  十大经典排序算法最强总结(含JAVA代码实现)


选择排序分析:

平均时间复杂度最好情况最坏情况空间复杂度排序方式稳定性
O(n^2)O(n)O(n^2)O(1)In-place不稳定

 

选择排序原理:

       选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 

 

选择排序原理图解:

 

 

Java 实现代码:

package com.sorting.algorithm;

public class SelectionSort {
	// 选择排序算法
	public static int[] selectionSort(int[] array){
		for(int i=0; i < array.length; i++){
			int minIndex = i;
			for(int j=i; j < array.length; j++){
				if(array[minIndex] > array[j])
					minIndex = j;
			}
			int temp = array[i];
			array[i] = array[minIndex];
			array[minIndex] = temp;
			
			printArr(array);
		}
		return array;
	}

	public static  void printArr(int[] array){
		for (int i = 0; i < array.length; i++) {
			if(i != array.length-1)
				System.out.print(array[i] + ",");
			else
				System.out.println(array[i]);
		}
		System.out.println();
	}

	public static void main(String[] args) {
		int[] array = { 58,36,70,22,88,64,1,32 };
		System.out.println("排序之前:");
		printArr(array);
		System.out.println("-------------------------------");
		
		System.out.println("排序过程");
		selectionSort(array);
		
		System.out.println("-------------------------------");
		System.out.println("排序之后:");
		printArr(array);	
	}

}

 

 

 

选择排序算法测试:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值