基本思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。
过程:在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素 若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换 在剩余的array[i]--array[n-2](array[i+1]--array[n-1])集合中,重复上述步骤,直到集合剩余1个元素
特性总结:
1. 直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用
2. 时间复杂度:O(N^2)
3. 空间复杂度:O(1)
4. 稳定性:不稳定
- public class SelectSort {
- // 选择排序
- public static void selectSort(int[]arr){
- int length=arr.length;
- //本代码采用找剩余数据中最小值,再将最小值换到最前面的方法
- for(int i=0;i
- //假设此时数组中最小数据的下标是i
- int minIndex=i;
- //遍历i后面的数据,找到最小值
- for(int j=i+1;j
- if(arr[j]
- minIndex=j;
- }
- }
- swap1(arr,i,minIndex);
- }
- }
-
- //交换数组arr中m下标和n下标中的值
- private static void swap(int[]arr,int m,int n){
- int tmp=arr[m];
- arr[m]=arr[n];
- arr[n]=tmp;
- }
- }
-
相关阅读:
设计模式-桥接模式(Bridge)
LeetCode[145]二叉树的后序遍历
缓存失效问题和Redis分布式锁
Linux下的第一个小程序--进度条 & 蹦迪炫彩进图条
【机器学习】回归树生成过程及举例理解
总结SQL中add constraint的用法
『现学现忘』Git分支 — 41、分支基本操作(二)
Easysearch压缩模式深度比较:ZSTD+source_reuse的优势分析
【0116】PostgreSQL/MVCC
科技型中小企业有哪些?
-
原文地址:https://blog.csdn.net/q322359/article/details/132872694
-
最新文章
-
沪漂五周年了:我越来越迷茫了
Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
MySQL-Seconds_behind_master的精度误差
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
Agent OS :五种驯服不确定性的范式
PortSwigger SQL注入LAB11
数据库即时编译JIT
[Begin]AI Learn Data Day 0
深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU