博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排序算法系列:选择排序算法JAVA版(靠谱、清晰、真实、可用、不罗嗦版)
阅读量:4135 次
发布时间:2019-05-25

本文共 1216 字,大约阅读时间需要 4 分钟。

在网上搜索算法的博客,发现一个比较悲剧的现象非常普遍:

  • 原理讲不清,混乱
  • 啰嗦
  • 图和文对不上
  • 不可用,甚至代码还出错

我总结一个清晰不罗嗦版:

原理:

  • 从数组头元素索引i开始,寻找后面最小的值(比i位置值小),进行交换;
  • 索引i依次+1

选择排序时间复杂度

选择排序的时间复杂度是O(N2)。
假设被排序的数列中有N个数。遍历一趟的时间复杂度是O(N),需要遍历多少次呢?N-1!因此,选择排序的时间复杂度是O(N2)。

选择排序稳定性

选择排序是稳定的算法,它满足稳定算法的定义。
算法稳定性 -- 假设在数列中存在a[i]=a[j],若在排序之前,a[i]在a[j]前面;并且排序之后,a[i]仍然在a[j]前面。

JAVA代码

package Sort;public class Selection {        public static void main(String[] args) {        int arr[] = {1, 12, 5, 26, 7, 14, 3, 7, 2};           Selection ob = new Selection();         ob.selectionSort(arr);           System.out.println("选择排序结果:");         printArray(arr);     }        public void selectionSort(int[] arr) {          int i, j, minIndex, tmp;          int n = arr.length;          for (i = 0; i < n - 1; i++) {                minIndex = i; //最小值的索引位置                for (j = i + 1; j < n; j++)                      if (arr[j] < arr[minIndex])                            minIndex = j;                if (minIndex != i) {                      tmp = arr[i];                      arr[i] = arr[minIndex];                      arr[minIndex] = tmp;                }          }    }        public static void printArray(int arr[])     {         int n = arr.length;         for (int i=0; i

 

转载地址:http://xtpvi.baihongyu.com/

你可能感兴趣的文章
mysql事物处理的四大特征和简单用法
查看>>
jsoup爬虫项目基础用法,如何用jsoup从网上爬东西
查看>>
js中onchange事件举例用法
查看>>
jQuery绑定事件 bind用法
查看>>
jQuery五星好评界面反馈界面
查看>>
AjAx使用方法四步骤,创建,打开,发送,onreadystatechange
查看>>
实现HttpSessionListener接口完成获取创建和销毁session的时间
查看>>
实现HttpSessionAttributeListener类,来完成session的增改删功能
查看>>
jsp上传图片servlet代码
查看>>
spring配置文件的基本写法
查看>>
JAVA springmvc自动转换日期类型的格式
查看>>
springmvc 文件上传,图片上传的方法
查看>>
java下载文件中文乱码情况解决方法
查看>>
解决maven项目不会预读xml文件,Invalid bound statement (not found): com.starry.dao.IUserDao.selAll
查看>>
hibernate动态hql查询,分页查询,调用方法即可查询
查看>>
hibernate懒加载用法和好处
查看>>
springmvc上传图片方法
查看>>
使用AJAX传数组,后台接受数组
查看>>
java基础-数组转换,删除,去重复(自己玩儿)
查看>>
spring框架bean初始化给变量赋值(生命周期)-自己写着玩儿
查看>>