【基础排序】选择排序
前面说的冒泡排序是每一轮比较确定最后一个元素,中间过程不断地交换。而选择排序就是每次选择剩下的元素中最小的那个元素,与当前索引位置的元素交换,直到所有的索引位置都选择完成。
排序的步骤如下:
1. 从第一个元素开始,遍历其后面的元素,找出其后面比它更小的且最小的元素,若有,则两者交换,保证第一个元素最小。
2. 对第二个元素一样,遍历其后面的元素,找出其后面比它更小的且最小的元素,若存在,则两者交换,保证第二个元素在未排序的数中(除了第一个元素)最小。
3. 依次类推,直到最后一个元素,那么数组就已经排好序了。

package sort; public class SelectionSort { public static void printf(int[] nums) { for (int num : nums) { System.out.print(num + " "); } System.out.println(""); } public static void selectionSort(int []nums) { //int times=0; // 记录对比次数. int size=nums.length; int minIndex,temp; for(int i = 0;i < (size - 1);i++) { //System.out.print("第" + (i + 1) + "轮选择开始:"); minIndex = i; for(int j = i + 1;j < size;j++) { //times++; if(nums[j] < nums[minIndex]) { minIndex = j; } } //System.out.println("交换 "+nums[i]+"和"+nums[minIndex]); temp = nums[i]; nums[i] = nums[minIndex]; nums[minIndex] = temp; //printf(nums); } //System.out.println("比较次数:"+times); } public static void main(String[] args) { // TODO Auto-generated method stub int[]nums = new int[]{98,90,34,56,21, 7}; printf(nums); selectionSort(nums); System.out.println("------------------------"); printf(nums); } }
引用链接:https://www.cnblogs.com/yyyyfly1/p/15773593.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现