Java 直接选择排序算法
来源:互联网 发布:Mac梦幻西游 编辑:程序博客网 时间:2024/05/17 07:46
Java 直接选择排序算法
使用场景:
它需要经过n-1趟比较。算法不稳定,O(1)的额外的空间,比较的时间复杂度为O(n^2),交换的时间复杂度为O(n),并不是自适应的。在大多数情况下都不推荐使用。只有在希望减少交换次数的情况下可以用。
排序原理:
选择排序算法的一般策略:搜索整个值列,以找到最小值。将该值与值列中第一个位置上的值进行交换。搜索剩下的值列(第一个除外),以找到其中的最小值,然后将其与值列中第二个位置上的值进行交换。对值列中的每个位置重复该过程。在算法结束时,就完成了对值列的排序。
具体代码示例:
packagecom.test.sort;
public class SelectSortTest {
public staticvoid main(String[] args) {
int[] data= new int[] { 5, 3, 6, 2, 1, 9, 4, 8, 7 };
print(data);
selectSort(data);
print(data);
}
public staticvoid swap(int[] data, int i, int j) {
if (i == j){
return;
}
// 将i和j这两个位置的值进行交换
data[i] =data[i] + data[j];
data[j] =data[i] - data[j];
data[i] =data[i] - data[j];
}
public staticvoid selectSort(int[] data) {
for (int i= 0; i < data.length - 1; i++) {
intminIndex = i; // 记录最小值的索引
for(int j = i + 1; j < data.length; j++) {
if(data[j] < data[minIndex]) {
minIndex = j; // 若后面的元素值小于最小值,将j赋值给minIndex
}
}
if(minIndex != i) {
swap(data, i, minIndex);
print(data);
}
}
}
public staticvoid print(int[] data) {
for (int i= 0; i < data.length; i++) {
System.out.print(data[i] + "\t");
}
System.out.println();
}
}
- Java 直接选择排序算法
- java 直接选择排序算法
- java排序算法(二):直接选择排序
- Java排序算法-直接选择排序
- java核心技术之直接选择排序算法
- 直接选择排序算法
- 直接选择排序算法
- 直接选择排序算法
- 直接选择排序算法
- 直接选择排序算法
- 直接选择排序算法
- 排序算法-------直接选择排序
- Java 直接选择排序
- 直接选择排序 Java
- Java直接选择排序
- Java 直接选择排序
- Java直接选择排序
- java直接选择排序
- HTML5到底是什么?
- 基于jQuery实现的当离开页面时出现提示的实现代码
- 源代码行数统计工具 Any Code Counter
- Android 视频播放器截屏功能实现讲解
- ios 视图切换动画效果
- Java 直接选择排序算法
- 深入分析 ASP.NET Mvc 1.0 – 2. Controller.Execute(Request)-TempDataDictionary的Load与Save操作
- Android应用程序组件Content Provider在应用程序之间共享数据的原理分析
- LinQ To Xml
- 服务器获得客户端提交的数据及中文乱码问题
- Android应用程序组件Content Provider的启动过程源代码分析
- OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪
- Ant的一些知识
- COM载板设计之一: PCB的设计