选择排序和插入排序
来源:互联网 发布:淘宝描述不符有赔偿吗 编辑:程序博客网 时间:2024/05/22 09:05
选择排序
排序算法的实现思路
首先找到数组中的最小的那个元素,其次,将它和数组中的第一个元素交换位置(如果第一个元素是最小最值那么它就和自己交换)。再次,在剩下的元素中,找到最小的元素,将它和数组的第二个元素交换位置。直到将整个数组排序完成。选择排序在不断选择剩余元素中的最小值。
实现
public void sort(int[] a){ int len = a.length; //数组的长度 for(int i = 0; i < len; i++){ //将a[i]和a[i+1..N]中最小的元素进行交换 int min = i; //记录最小值的索引 for(int j = i+1; j < N; j++) less(a[j], a[min]) j = min; exchange(a, i, min); }}
- 时间复杂度的分析
交换只进行N次,0到n-1次的任意i都会进行N-1-i次比较,所以(N-1)+(N-2)+(N-3)+…+2+1 = N^2/2次比较,时间复杂度是O(n^2)
插入排序
算法实现思路
当前索引i左边的所有元素都是有序的,但是他们的最终位置还不确定,为了给最小的元素腾出空间,可能会被移动。但是当索引
代码实现
public void insertSort(int[] a){//升序排序 int N = a.length; for(int i = 1; i < N; i++){ //将a[i]插入到a[i-1],a[i-2], a[i-3]之间 for(int j = i; j > 0 && less(a[j], a[j-1]); j--)//j指向要排序的元素 exch(a, j, j-1); }}
- 时间复杂度
最坏情况下是O(n^2)
阅读全文
0 0
- 插入排序和选择排序
- 选择排序和插入排序
- 选择排序和插入排序
- 选择排序和插入排序
- 选择排序和插入排序
- 插入排序和选择排序
- 选择排序和插入排序
- 插入排序和选择排序
- 选择排序和插入排序
- 选择排序和插入排序
- 插入排序和选择排序
- 选择排序和插入排序
- 选择排序和插入排序
- 选择和插入排序
- 冒泡排序 选择排序和插入排序
- 冒泡排序、插入排序和选择排序
- 冒泡排序和插入排序,选择排序
- 插入排序,选择排序和快速排序
- Git提交报错git-upload-pack
- 快速排序的升序和降序
- js常用的数据判断正则表达式
- Java 基本数据类型
- 用xshell写Linux命令:从一个服务器复制文件到另一个服务器
- 选择排序和插入排序
- 浅析模拟退火
- 稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结
- android6.0 wifi和以太网优先级修改
- react-native 滚动视图点击事件无法响应的情况
- vim快速移动
- 向Revit中批量导入运维信息
- Android studio修改图标/android 修改图标
- Android可设置结果的Loading