排序方法:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(箱排序、基数排序)
各种方法的特点:
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序
举例:
冒泡排序:- public static int[] bubbleSort(int[] args){
- for(int i=0;i<args.length-1;i++){
- for(int j=i+1;j<args.length;j++){
- if (args[i]>args[j]){
- int temp=args[i];
- args[i]=args[j];
- args[j]=temp;
- }
- }
- }
- return args;
- }
复制代码 选择排序:- public static int[] selectSort(int[] args){
- for (int i=0;i<args.length-1 ;i++ ){
- int min=i;
- for (int j=i+1;j<args.length ;j++ ){
- if (args[min]>args[j]){
- min=j;
- }
- }
- if (min!=i){
- int temp=args[i];
- args[i]=args[min];
- args[min]=temp;
- }
- }
- return args;
- }
复制代码 插入排序:- public static int[] insertSort(int[] args){
- for(int i=1;i<args.length;i++){
- for(int j=i;j>0;j--){
- if (args[j]<args[j-1]){
- int temp=args[j-1];
- args[j-1]=args[j];
- args[j]=temp;
- }else break;
- }
- }
- return args;
- }
复制代码 常用的也就这些,剩下的你可以自己找资料,这东西网上一大堆,让管理员看到还以为你在刷分呢 |