排序之选择排序

在计算机科学中,排序算法是最基本的算法之一。它们用于将一组数据按照一定的顺序进行排列。今天,我们将学习并深入理解Java中的选择排序算法。

选择排序简介

选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,继续放在起始位置直到未排序元素个数为0。

选择排序的步骤:

1>首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

2>再从剩余未排序元素中继续寻找最小(大)元素,然后放到未排序序列的起始位置。

3>重复第二步,直到所有元素均排序完毕。

Java代码实现

以下是使用Java实现选择排序的代码:

java 复制代码
import java.util.Arrays;
//选择排序
public class SelectSort {

	public static void main(String[] args) {
		int[] arr = {5,7,4,2,0,3,1,6};
		sort(arr);
		System.out.println(Arrays.toString(arr));
	}

	public static void sort(int[] arr) {
		for(int j=0;j<arr.length;j++) {
			int min = arr[j];
			int minIndex = j;
			//找到最小值
			for(int i=j+1;i<arr.length;i++) {
				if(min>arr[i]) {
					min = arr[i];
					minIndex = i;
				}
			}
			//最小值和待排序数组的第一个进行交换
			arr[minIndex] = arr[j];
			arr[j] = min;
		}
		
	}
}

在这个程序中,我们首先定义了一个整数数组arr,然后调用sort方法对其进行排序。排序完成后,我们使用System.out.printlnArrays.toString方法打印出排序后的数组。

sort方法是选择排序的核心部分。它通过两层循环来实现排序。外层循环控制每次需要比较的元素范围,内层循环则负责找出当前范围内最小的元素。当内层循环结束后,我们就找到了当前范围内的最小元素,并将其与当前元素交换。这样,我们就可以确保当前元素总是小于或等于其后面的元素。当我们完成所有的迭代后,数组就已经按照升序排列了。

相关推荐
Q741_1471 小时前
每日一题 力扣 1848. 到目标元素的最小距离 模拟 C++题解
c++·算法·leetcode·模拟
VkN2X2X4b2 小时前
算法性能的渐近与非渐近行为对比的技术9
算法
好家伙VCC2 小时前
**神经编码新视角:用Python实现生物启发的神经信号压缩与解码算法**在人工智能飞速发展的今天
java·人工智能·python·算法
W23035765739 小时前
经典算法:最长上升子序列(LIS)深度解析 C++ 实现
开发语言·c++·算法
2401_892070989 小时前
链栈(链式栈) 超详细实现(C 语言 + 逐行精讲)
c语言·数据结构·链栈
minji...10 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
语戚11 小时前
力扣 968. 监控二叉树 —— 贪心 & 树形 DP 双解法递归 + 非递归全解(Java 实现)
java·算法·leetcode·贪心算法·动态规划·力扣·
skywalker_1111 小时前
力扣hot100-7(接雨水),8(无重复字符的最长子串)
算法·leetcode·职场和发展
bIo7lyA8v12 小时前
算法稳定性分析中的输入扰动建模的技术9
算法