常用排序算法总结
来源:互联网 发布:苹果软件破解版 编辑:程序博客网 时间:2024/05/16 17:52
排序算法java实现如下:
//介绍了冒泡,快速,选择,插入以及归并5中排序算法。public class Sort {public static int[] quickSort(int[] a,int begin,int end) //快速排序{if(begin<end){int i=begin,j=end;int vot = a[i];if(i!=j){while(i<j&&vot<=a[j])j--;if(i<j)a[i++]=a[j];while(i<j&&vot>=a[i])i++;if(i<j)a[j--]=a[i];}a[i]=vot;quickSort(a,begin,i-1);quickSort(a,i+1,end);}return a;}public static int[] maoPaoSort(int[] a) //冒泡排序{boolean flag = true;for(int i=1;i<a.length&&flag;i++){flag=false;for(int j=0;j<a.length-i;j++){if(a[j]>a[j+1]){int temp = a[j];a[j]=a[j+1];a[j+1]=temp;flag=true;}}}return a;}public static int[] insertSort(int[] a) //插入排序{for(int i=1;i<a.length;i++){int j;for(j=i-1;j>=0;j--){if(a[i]<a[j]){a[j+1]=a[j];}}a[j+1]=a[i];}return a;}public static int[] swapSort(int[] a)//选择排序{for(int i=0;i<a.length-1;i++){int min=i;for(int j=i+1;j<a.length;j++){if(a[min]>a[j]){min=j;}}if(min!=i){int temp=a[min];a[min]=a[i];a[i]=temp;}}return a;} public static void mergeSort(int[] a, int first, int last) { int mid = (first+last)/2; //获取中间位置 if(first==last) return; mergeSort(a,first,mid); mergeSort(a,mid+1,last); merge(a,first,mid,last); }public static void merge(int[] a, int first, int mid, int last){ int[] b; //临时数组 b = new int[a.length]; int i=first,j=mid+1,k=first; while(i<=mid&&j<=last) { if(a[i]<=a[j]) { b[k++]=a[i++]; } else { b[k++]=a[j++]; } } while(i<=mid) //把剩余的添加到b中 { b[k++]=a[i++]; } while(j<=last)//把剩余的添加到b中 { b[k++]=a[j++]; } for(i=first;i<=last;i++) //把排好序的数组重新赋给a { a[i]=b[i]; } }}
时间复杂度空间复杂度如下:
其中,插入和冒泡排序在数组有顺序的情况下,会得到最好的时间复杂度。而快速排序会在数组有序情况下时间复杂度会退化成O(n2);
1,2,3,4,5,6,7例如这个数组。
0 0
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法 总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 常用排序算法总结
- 页面滚动加载例子
- 求自然数1~10之和
- 从'0'开始的操作系统MyOs(汇编FAT12软盘)
- 和君咨询推荐阅读书目单
- Android Studio 引进javax.xml.soap
- 常用排序算法总结
- 决策树分类算法
- Android测试之本地单元测试(Local Unit Test)
- 深入理解MyBatis框架——SqlSession
- MD5数据加密小记
- uc/os操作系统读书笔记
- 第一篇:c#数据库从sql改为mysql
- git fetch将远程分支信息获取到本地
- 简单易学的机器学习算法——因子分解机(Factorization Machine)