java常用三种排序算法---(插入,冒泡,顺序)及其时间复杂度
来源:互联网 发布:男士风衣品牌 知乎 编辑:程序博客网 时间:2024/06/15 14:33
java三种排序算法
1.插入排序
插入排序,稳定(改变一部分数组数值的位置)(时间最坏复杂度 O(n^2)最优均为O(n))
插入排序的算法核心为把当前插入的位置之前变为有序
2.冒泡排序
冒泡排序,不稳定(会改变大部分部分数组数值的位置)(时间最坏复杂度 O(n^2)最优均为O(n))
冒泡排序每次出来一个最值是其核心算法所在
3.选择排序
选择排序,不稳定(会改变大部分数组原本位置的值)(时间最坏最优复杂度均为O(n^2))
选择排序是拿每一个数和其后面所有的数比较
import java.util.Arrays;public class Test2 {//java三种排序算法(插入,冒泡,顺序)及其时间复杂度public static void main(String[] args) {// TODO Auto-generated method stubint[] arr=new int[]{3,1,9,4,8,9,2,10};//插入排序insertSort(arr);//冒泡排序bubleSort(arr);//选择排序selectSort(arr);}//插入排序,稳定(改变一部分数组数值的位置)(时间最坏复杂度 O(n^2)最优均为O(n))//插入排序的算法核心为把当前插入的位置之前变为有序public static void insertSort(int[] arr){for (int i = 1; i < arr.length; i++) {int k=arr[i];int j;for ( j= i-1; j >=0; j--) {if(arr[j]>k){arr[j+1]=arr[j];}else{break;}}arr[j+1]=k;}System.out.println(Arrays.toString(arr));}//冒泡排序,不稳定(会改变大部分部分数组数值的位置)(时间最坏复杂度 O(n^2)最优均为O(n))//冒泡排序每次出来一个最值是其核心算法所在public static void bubleSort(int[] arr){for (int i = 1; i < arr.length; i++) {for (int j = 0; j < arr.length-i; j++) {if(arr[j]>arr[j+1]){int max=arr[j];arr[j+1]=arr[j];arr[j]=max;}}}System.out.println(Arrays.toString(arr));}//选择排序,不稳定(会改变大部分数组原本位置的值)(时间最坏最优复杂度均为O(n^2))//选择排序是拿每一个数和其后面所有的数比较public static void selectSort(int[] arr){for (int i = 0; i < arr.length; i++) {for (int j = i+1; j < arr.length; j++) {if(arr[i]>arr[j]){int max=arr[i];arr[i]=arr[j];arr[j]=max;}}}System.out.println(Arrays.toString(arr));}}打印输出:[1, 2, 3, 4, 8, 9, 9, 10]
阅读全文
0 0
- java常用三种排序算法---(插入,冒泡,顺序)及其时间复杂度
- 常用排序算法--冒泡排序及改进和插入排序时间复杂度分析
- 三种初级排序算法(冒泡、选择、直接插入)java实现及其性能比较
- 常用排序及其时间复杂度
- 排序算法之 冒泡排序 及其时间复杂度和空间复杂度
- 排序算法之 插入排序、希尔(shell)排序 及其时间复杂度和空间复杂度
- 简单冒泡排序的时间复杂度及其两种优化
- Java三种常见的排序算法:冒泡,选择,插入
- 几种常见的排序算法及其时间复杂度——选择排序(三)
- 八大排序算法思想,时间复杂度,稳定性、及其java实现
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言2 分类2 稳定性3 时间复杂度4 Java实现版本5 1、冒泡排序6 2、选择排序
- 插入排序算法的java实现及时间复杂度分析
- 冒泡排序时间复杂度和算法
- c语言排序算法总结 选择 插入 冒泡 希尔 快速 堆排序 稳定性 时间复杂度 空间复杂度
- 【学习总结】Java中最常用的三大排序算法-冒泡排序、选择排序、插入排序
- 【算法】常用排序算法时间空间复杂度
- Java 常用算法 插入,冒泡,快速排序大放送
- 排序算法之 基数排序 及其时间复杂度和空间复杂度
- SOAP WebService 短信接口对接
- 【文献阅读】Densely Connected Convolutional Networks-best paper-CVPR-2017
- POJ-2689 Prime Distance(区间素数筛--经典题)
- python常用的十进制、16进制、字符串、字节串之间的转换
- Android ANR的产生与分析
- java常用三种排序算法---(插入,冒泡,顺序)及其时间复杂度
- CarrierConfigManager解析
- css学习笔记之垂直居中
- 活体检测的实现
- NTT(快速数论变换)
- JsonCpp遍历json
- 利用hadoop+hive抽取pcap源地址、目的地址、源端口和目的端口等相关数据
- SVN版本管理工具使用手册
- Android 插件化原理 完胜360插件框架 技术实战