八大排序算法
来源:互联网 发布:excel无法粘贴数据 编辑:程序博客网 时间:2024/05/29 15:48
直接插入算法:时间复杂度O(n^2)
import java.util.*;public class DigPow { public static void main(String[] args){ // Insert brilliant code here//插入排序int[] a=new int[]{3,1,5,7,2,4,9,6};for(int i=1;i<a.length;i++) {if(a[i]<a[i-1]){int temp=a[i]; int j=i-1;while(j>=0&&a[j]>temp){ //注意此处一定是j>=0在前,不然会报数组溢出的问题a[j+1]=a[j];j--;}a[j+1]=temp;}System.out.println(Arrays.toString(a));}System.out.println(Arrays.toString(a)); }}
希尔排序:时间复杂度:O(nlogn)
import java.util.*;public class DigPow { public static void main(String[] args){ // Insert brilliant code here//希尔排序int[] arrays=new int[]{26, 53, 67, 48, 57, 13, 48,13, 32, 60, 50};int incrementNum = arrays.length/2; while(incrementNum >0){ for(int i=0;i<arrays.length;i++){ //进行插入排序
if(arrays[i]>arrays[i+incrementNum]){ int temple = arrays[i]; arrays[i] = arrays[i+incrementNum]; arrays[i+incrementNum] = temple; } } //设置新的增量 incrementNum = incrementNum/2; }System.out.println(Arrays.toString(arrays)); }}
选择排序 时间复杂度:O(n^2);
import java.util.*;public class DigPow { public static void main(String[] args){ // Insert brilliant code here//选择排序int[] a=new int[]{49,38,65,97,76,13,27,14,10};for(int i=0;i<a.length;i++){int min=i;for(int j=i;j<a.length;j++){if(a[min]>a[j]) //注意这里一定要换为min,因为后文中会对min进行替换。{min=j;}}if(i!=min){int temp=a[min];a[min]=a[i];a[i]=temp;}System.out.println(Arrays.toString(a));}System.out.println(Arrays.toString(a)); }}
选择排序的优化:可以一趟确定出两个值:最大以及最小:
冒泡排序:时间复杂度: 0 0
- [算法]--八大排序算法
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- 八大排序算法总结
- $.extend()的深拷贝和浅拷贝详细讲解
- 微信小程序 动态设置placeholder和按钮选中取消状态
- 【Spring】Struts和Spring集成
- 拦截器与过滤器区别
- EDA软件_Cadence_Allegro 16.6更改字体大小
- 八大排序算法
- 利用python库打造自己的视频下载器
- 《java语言程序设计》第十章学习总结
- iOS调用reloadRowsAtIndexPaths Crash报异常NSInternalInconsistencyException
- JavaScript---正则表达式
- Runloop(上篇)
- Android中 IntentService 与 Service 的区别
- Java入门三
- MySQL数据库SELECT应用(二)