java的选择排序学习
来源:互联网 发布:华为c语言笔试题 编辑:程序博客网 时间:2024/05/16 05:47
实现代码:
public class Selection {
@SuppressWarnings("rawtypes")
public static void main(String[] args) {
Comparable[] a={49,38,65,97,76,13,27,49,78,34,12,64,1,8};
System.out.println("排序之前:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
// //简单的选择排序
// for (int i = 0; i < a.length; i++) {
// int min = a[i];
// int n=i; //最小数的索引
// for(int j=i+1;j<a.length;j++){
// if(a[j]<min){ //找出最小的数
// min = a[j];
// n = j;
// }
// }
// a[n] = a[i];
// a[i] = min;
//
// }
// System.out.println();
// System.out.println("排序之后:");
// for (int i = 0; i < a.length; i++) {
// System.out.print(a[i]+" ");
// }
int N = a.length;
for (int i = 0; i < N; i++) {
int min = i; //最小元素的索引
for (int j = i + 1; j < N; j++) {
if (less(a[j], a[min]))
min = j;
}
exch(a, i, min);
}
System.out.println();
System.out.println("排序之后:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private static boolean less(Comparable v, Comparable m){
return v.compareTo(m) < 0;
}
@SuppressWarnings({ "unused", "rawtypes" })
private static void exch(Comparable [] a, int i, int j){
Comparable t = a[i];
a[i] = a[j];
a[j] = t;
}
}
排序之前:
49 38 65 97 76 13 27 49 78 34 12 64 1 8
排序之后:
1 8 12 13 27 34 38 49 49 64 65 76 78 97
算法分析:
对于长度为N的数组,选择排序需要大约N^2/2次比较和N次交换。
特点:
- 运行时间和输入没有关系。(对于一个有序的数组或主键全部相等的数组或元素随机排列的数组所用的排序时间一样长)。
- 数据移动是最少的。交换次数和数组的大小是线性关系。
- 简单选择排序是不稳定的排序。
- 时间复杂度:T(n)=O(n2)。
0 0
- java的选择排序学习
- 选择排序的学习
- java的选择排序
- java的选择排序
- Java的选择排序
- java学习之选择排序
- java排序算法学习(一)--选择排序
- java学习之 数组排序-选择排序
- Java学习笔记排序算法----------选择排序
- Java学习-选择排序1-直接选择排序
- java实现的选择排序
- 选择排序的Java实现
- Java里面的选择排序
- Java的选择排序算法
- 选择排序的Java实现
- java选择排序的实现
- 选择排序和冒泡排序的学习
- 我的Java开发学习之旅------>Java经典排序算法之选择排序
- MySql的安装和配置(图文+视频)
- first、follow集合求解 (编译原理)
- Ubuntu下搭建tftp服务器最简单方法
- Jsoup从table中取数据
- T-sql 语言基础
- java的选择排序学习
- python 提取key 为中文的json 串
- 智慧城市所需:系统环境配置
- Ubuntu 14.10安装和卸载搜狗拼音输入法
- entries、every
- MySQL 子查询
- 关于排序算法
- OpenStack网络指南(11)可用区域
- okhttp的Wiki(翻译)