java:选择排序法对数组排序
2024-09-01 04:09:57
最近想练一练Java的算法,然后碰到LeetCode上一道从排序数组删除重复项的小题,刚开始没看到是从排序数组中,就乱写,其实要是排序树组,就比乱序的感觉上好写多了。然后就想回顾下冒泡法对数组排序,凭感觉写的,写到最后成了选择排序……呃……
简单对冒泡法和选择排序法介绍一下。
冒泡法是两两比较,两两交换,逐渐的把最大的弄到最后(最前),最小的弄到最前(最后)。网上有很多例子。
而选择排序法是每次都选出最小的放到最前(最后),然后再从剩下的数里面选出里面最小的再放到第二位(倒数第二位)。
public class Solution {
public static void main(String[] args) {
int[] nums = {10, 12, 6, 4, 8, 3, 7, 23, 65, 12};
for (int i = 0; i < nums.length; i++) { //第一个for循环
int n = nums[i], a = i, change; //定义第二个for循环需要用的东西
for (int j = i; j < nums.length - 1; j++) { //每次都让j=i,想要做的是在第i个以及以后选择最小的放到第i位
if (nums[j + 1] < n) { //如果下一个比n小,就让n等于下一个,for循环结束时n就是最小的
n = nums[j + 1];
}
for (int x = 0; x < nums.length; x++) { //这个for循环的作用是找到最小的那一位数并用a记录
if (n == nums[x]) {
a = x;
}
} //内for结束
} //外for结束
change = nums[i]; //把最小的和第一位交换
nums[i] = nums[a];
nums[a] = change;
}
for (int x : nums) { //foreach输出数组
System.out.print(" " + x);
} }
}
可能我潜意识里就觉得选择排序法思路更清晰一些吧……好像执行速度还挺短的,以后也会多进行这样的小练习。
最新文章
- HDU5937 Equation(DFS + 剪枝)
- TortoiseSVN 中 一个 Merge revisions to.. 小坑
- 使用 Composer 为 ThinkPHP(3.2.3)框架添加和管理组件
- rabbitMQ publish丢包分析
- [zz]计算 协方差矩阵
- SecureCRT自动备份脚本-华为
- Android开发常用代码片段
- Android开发经验记录
- windows系统 安装MongoDB 32位
- MySQL协议简单分析
- bootstrap插件学习-bootstrap.modal.js
- [SinGuLaRiTy] 2017-03-30 综合性测试
- [LeetCode] Most Frequent Subtree Sum 出现频率最高的子树和
- centos 桌面没有有线设置,不能上网
- Flume+Kafka+Storm+Hbase+HDSF+Poi整合
- Holedox Eating HDU - 4302 2012多校C 二分查找+树状数组/线段树优化
- 目标检测-yolo
- BZOJ.2437.[NOI2011]兔兔与蛋蛋游戏(二分图博弈 匈牙利)
- Lucene系列五:Lucene索引详解(IndexWriter详解、Document详解、索引更新)
- CUDA C Programming Guide 在线教程学习笔记 Part 8
热门文章
- 论文阅读计划2(Deep Joint Rain Detection and Removal from a Single Image)
- 《译文》借助OCR和神经网络,用JavaScript识别验证码
- Rendering in Delphi using TCanvas (FMX)
- CSS3 Generator提供了13个CSS3较为常用的属性代码生成工具,而且可以通过这款工具除了在线生成效果代码之外,还可以实时看到你修改的效果,以及浏览器的兼容性。
- Qt中加载Libevent静态库(通过reimp和rs两条语句将lib转为a)
- logstash performance testing
- [2017.02.13] linux平台下统计C++项目文件个数和代码行数
- python的内存分配
- 解决Nextcloud 无法删除目录
- 简单学习js