java常见排序算法
来源:互联网 发布:淘宝客服是不是店主 编辑:程序博客网 时间:2024/05/01 03:05
package algorithms;public class ArrayDemo { public static void main(String[] args) { int [] arr={18,4,22,2,7,5,3,21,35,51,54};// int max=getMax(arr);// arr=sort2(arr); int start=0; int end=arr.length-1; sort3(arr,start,end); print(arr); } public static void print(int [] arr){ for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); }System.out.println(); } //获取最大值 public static int getMax(int [] arr){ int max=arr[0]; for(int i=1;i<arr.length;i++){ if(max<arr[i]){ max=arr[i]; } } return max; } //选择排序 public static int [] sort1(int [] arr){ int len=arr.length; for(int i=0;i<len-1;i++){ for(int j=i+1;j<len;j++){ if(arr[i]>arr[j]){ int tmp=arr[i]; arr[i]=arr[j]; arr[j]=tmp; } } } return arr; } //冒泡排序 public static int [] sort2(int [] arr){ int len=arr.length; for(int i=0;i<len-1;i++){ for(int j=0;j<len-i-1;j++){ //arr[i]和arr[i+1]比较 if(arr[i]>arr[i+1]){ int tmp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=tmp; } } } return arr; } //快速排序 public static void sort3(int[] a,int low,int high){ int start = low; int end = high; int key = a[low]; while(end>start){ //从后往前比较 while(end>start&&a[end]>=key) //如果没有比关键值小的,比较下一个,直到有比关键值小的交换位置,然后又从前往后比较 end--; if(a[end]<=key){ int temp = a[end]; a[end] = a[start]; a[start] = temp; } //从前往后比较 while(end>start&&a[start]<=key)//如果没有比关键值大的,比较下一个,直到有比关键值大的交换位置 start++; if(a[start]>=key){ int temp = a[start]; a[start] = a[end]; a[end] = temp; } //此时第一次循环比较结束,关键值的位置已经确定了。左边的值都比关键值小,右边的值都比关键值大,但是两边的顺序还有可能是不一样的,进行下面的递归调用 } //递归 if(start>low) sort3(a,low,start-1);//左边序列。第一个索引位置到关键值索引-1 if(end<high) sort3(a,end+1,high);//右边序列。从关键值索引+1到最后一个 }}
0 0
- java常见排序算法
- 常见Java排序算法
- Java常见排序算法
- java常见排序算法
- Java常见排序算法
- Java常见排序算法
- Java常见排序算法
- Java常见排序算法
- java常见排序算法
- Java--常见排序算法
- 【JAVA】java常见排序算法
- 常见排序算法--java实现
- java实现常见排序算法
- JAVA常见排序算法总结
- java常见的排序算法
- Java常见的排序算法
- java常见的排序算法
- Java实现常见排序算法
- Java--局部内部类在访问他所在方法中的局部变量必须用final修饰
- Superset安装部署
- Android AIDL
- 判断为空的几种方式
- 一个艰难的过程:在Mac上安装python-opencv
- java常见排序算法
- MySQL增删改数据_CDU
- SSHdemo搭建
- 如何在Spring中集成Hessian框架
- Linux指令-stat简析
- 461. Hamming Distance
- 学习 android studio 知识点
- stm8s串口奇偶校验学习笔记
- Linux环境下关于权限的一些小问题