算法学习之排序——选择排序(Java)
2015-02-05 10:01
232 查看
public class selectSort { public static void select(int[] array) { for(int i = 0; i < array.length - 1; i++) { int leastIndex = i; for(int j = i + 1; j < array.length; j++) { if(array[leastIndex] > array[j]) { leastIndex = j; } } int temp = array[i]; array[i] = array[leastIndex]; array[leastIndex] = temp; } } public static void main(String[] args) { int[] array = {2,1,5,4,3,0}; select(array); for(int a = 0; a < array.length; a++) { System.out.print(array[a]); } } }
算法步骤:
1. 遍历数组一遍,从中挑出最小的,并与第0个位置交换;
2. 从第1个位置开始遍历,找到余下最小的,与第1个位置交换;
3. ……;
算法性能:
若数组中有N个数据项,则第1趟排序有(N-1)次比较,第2趟有(N-2)次比较,类推:
共有(N-1)+(N-2)+…+1 = N*(N-1)/2 次比较;
交换次数应小于或等于N;
总的来说,时间复杂度还是N方。
相关文章推荐
- 一步步学习数据结构和算法之直接插入排序效率分析及java实现
- 算法学习之排序——冒泡排序及其改进算法(Java)
- 8大内部排序算法学习笔记--(1)插入排序java实现
- 一步步学习数据结构和算法之选择排序效率分析及java实现
- 面试前的准备(java专业 ~学习算法排序以及查找)
- 8大内部排序算法学习笔记--(2)快速排序 Java实现
- JAVA基础day04 数组学习 排序和查找基本算法
- java学习-算法1--冒泡排序
- 排序(快排,冒泡,堆排序,插入排序,归并排序,选择排序)算法Java实现
- 我的Java开发学习之旅------>Java经典排序算法之插入排序
- 8大内部排序算法学习笔记--(3)选择排序java实现
- Java学习之数组1(1.数组的声明;2.元素为引用数据类型的数组;3.关于main方法里的String[] args;4.数组排序;5.数3退1 数组算法,(用数组模拟链表);6数组查找之二分法;7数组的拷贝)
- Java学习资料-Java常用算法-选择排序算法
- 我的Java开发学习之旅------>Java经典排序算法之快速排序
- 8大内部排序算法学习笔记--(4)归并、基数排序 Java实现
- 学习笔记之快速排序——quicklySort——基础算法——java
- 【幻化万千戏红尘】qianfengDay11-java基础学习:数组,排序,算法
- 我的Java开发学习之旅------>Java经典排序算法之二分插入排序
- Java学习笔记之数组排序算法
- 一步步学习数据结构和算法之常用排序效率分析及java实现