排序算法
冒泡排序
冒泡排序的思想是从头遍历,让最大的一直向后交换,让最大的沉底
1 | public void sort_bubble(int[] nums){ |
选择排序
在未排序的子数组中找到最小值放到未排序数组的第一个位置
不稳定排序,因为在比较的时候会产生交换,有可能把在前面的值换到后面去
1 | public void sort_select(int[] nums){ |
插入排序
插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
1 | public void sort_insert(int[] nums){ |
快速排序
归并排序
采用分治法,将已有序的子序列合并,得到完全有序的子序列。
1 | public void sort_merge(int[] nums){ |
堆排
桶排
Arrays.sort
长度小于47:双轴插排
长度大于47小于286:双轴快排
大于286或者初始数据基本有序:归并排序