JAVA数据结构--选择排序
2024-09-05 07:52:52
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。
时间复杂度:O(n^2)
最优时间复杂度:O(n^2)
代码实现(JAVA)
public class SelectionSort {
public static void main(String[] args){
int []elem={3,4,12,6,87,1,22,45,5};
SelectionSort sort=new SelectionSort();
sort.sort(elem);
for(int i=0;i<elem.length;i++)
System.out.print(elem[i]+" ");
}
public int[] sort(int[] elem){
for(int i=0;i<elem.length-1;i++){
int minNum=i;
for(int j=i+1;j<elem.length;j++){//选出最小的elem中元素,记录下标
if(elem[j]<elem[minNum])
minNum=j;
}
if(minNum!=i){
int temp=elem[i];
elem[i]=elem[minNum];
elem[minNum]=temp;
}
}
return elem;
}
}
最新文章
- Unity3d入门 - 关于unity工具的熟悉
- Linux 系统中的MySQL数据库默认区分大小写
- Android权限 uses-permission
- angularJs之模块化
- 【转】 WebService到底是什么?
- 快速排序 Quick Sort
- Rails常用命令
- oracle SQL语句练习MERGE、模糊查询、排序、
- wcf系列学习5天速成——第四天 wcf之分布式架构
- how to enable #ifdef macro in the command line of make?
- 微信小程序语音识别服务搭建全过程解析(https api开放,支持新接口mp3录音、老接口silk录音)
- 【原】无脑操作:IDEA使用时,提示";8080端口被占用";的解决
- java_泛型2
- vue-element 动态单选多选全选
- HDU - 3642 Get The Treasury(线段树求体积交)
- CMD 命令2
- ERROR org.redisson.client.handler.CommandDecoder - Unable to decode data. channel
- MariaDB安装、初始化及常用操作
- 使用EntityManager批量保存数据
- linux下apache中httpd.conf的ServerAdmin 是设置的什么?
热门文章
- linux tcpdump补充
- Gym101350 FMonkeying Around
- dubbo 相关面试题 有用
- Solidity字符串拼接实现oraclize动态查询
- java容器 Map Set List
- Vue.js如何搭建本地dev server和json-server 模拟请求服务器
- ASP.NET中Service接受前端单个及多个数据的写法
- 快速获取.NET DLL文件编译时间
- 函数LEN()使用方法
- spring mvc 框架启动报错:nested exception is java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal 解决办法