JAVA选择排序
来源:互联网 发布:bae 数据库 编辑:程序博客网 时间:2024/06/07 13:05
一、选择排序是一种不稳定的排序方法,其主要思想是:每趟排序在当前待排序序列中选出关键码最小的记录,添加到有序序列中。通俗理解即:当前值和后序队列中所有制进行比较,选出最小的。
二、代码理解
class SelectSortDemo{public static void main(String[] args){int[] arr={10,9,3,4,8,1,7,6,0,5};sort(arr);print(arr);}//选择排序public static void sort(int[] arr){for(int i=0;i<arr.length;i++){int k=i;for(int j=i+1;j<arr.length;j++){if(arr[k]>arr[j]){k=j; // 记录最小值索引位置}}if(k!=i){swap(arr,k,i); }}}// 交换数值public static void swap(int[] arr,int k,int i){int temp=arr[i];arr[i]=arr[k];arr[k]=temp;}// 打印数组public static void print(int[] arr){for(int i=0;i<arr.length;i++){System.out.print(arr[i]+" ");}}}三、时空复杂度
在待排序序列为正序时,记录的移动次数最少,为0,;在待排序序列为逆序时,记录的移动次数最多,为3(n-1)次。无论记录的初始排列如何,关键码的比较次数相同第i躺排序需要n-i次关键码的比较。
所以:总的时间复杂度为O(n^2)。
在简单选择排序过程中,值需要一个用来作为交换的暂存单元。
所以:空间复杂度为O(1)。
阅读全文
0 0
- 排序-选择排序-Java
- 【选择排序】直接选择排序--Java
- 选择排序----直接选择排序----java实现
- JAVA 冒泡排序 选择排序
- Java--选择排序,冒泡排序
- 排序算法-选择排序 java
- 算法:排序----Java选择排序
- Java排序之选择排序
- 【选择排序】堆排序--Java
- java冒泡排序,选择排序
- java 排序算法-选择排序
- Java排序二:选择排序
- JAVA--冒泡排序、选择排序
- java简单排序-选择排序
- java 排序 之选择排序
- Java排序之选择排序
- [Java]冒泡排序、选择排序
- Java 排序之 选择排序
- ORB-SLAM(六)回环检测
- zoj 3509
- 最长公共子串与最长公共子序列
- FreeImage 3.17.0 在VS2015下编译及遇到问题解决
- pcie 驱动程序分析
- JAVA选择排序
- js日历控件
- struts2粗略总结
- select函数详解及其在I|O复用模型中的应用
- 1048. 数字加密(20)
- 计算机进制转换
- 基于vue-cli及express模拟Ajax获取服务器数据
- Spring学习之Bean的装配
- JAVA冒泡排序,归并排序,二分查找