黑马程序员-java之快速排序的实现
来源:互联网 发布:淘宝手机写试用报告 编辑:程序博客网 时间:2024/06/06 00:56
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
当然,现在java已经不用自己实现排序了。但是我觉得排序算法还是比较有意思的。在这里实现一下快速排序。
public class Paixu {
public static void main(String[] args) {
int[] arr=productArray(); //获得一个由10个随机数组成的数组
System.out.print("排序前: [ "); //打印显示 排序前的数组
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
System.out.println(arr[i]+" ]");
break;
}
System.out.print(arr[i]+", ");
}
quick(arr); //对数组进行排序
System.out.print("排序后: [ "); //打印显示 排序后的数组
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
System.out.println(arr[i]+" ]");
break;
}
System.out.print(arr[i]+ ", ");
}
}
public static int[] productArray(){//产生一个由10个随机数 组成的数组
int x=(int)(Math.random()*100+1);//产生一个1~100之间的随机数
int[] array=new int[10];//定义一个容量为10的空数组
for(int i=0;i<10;i++){//循环产生随机数,并将其赋值给数组的每个元素
array[i]=x;
x=(int)(Math.random()*100+1);
}
return array;
}
public static int getMiddle(int[] arr,int low,int high){//获得枢轴值的最终位置
int pivot=arr[low]; //将第一个元素设为枢轴值,对数组进行划分
while(low<high){//循环跳出条件
while(low<high && arr[high]>=pivot)
--high;
arr[low]=arr[high]; //将比枢轴值小的元素移到左边
while(low<high && arr[low]<=pivot)
++low;
arr[high]=arr[low]; //将比枢轴值大的元素移到右边
}
arr[low]=pivot;
return low;
}
public static void quickSort(int[] arr,int low,int high){//递归调用getMiddle
if(low<high){
int middle=getMiddle(arr,low,high);
quickSort(arr,low,middle-1);//对左侧数组进行递归
quickSort(arr,middle+1,high);//对右侧数组进行递归
}
}
public static void quick(int[] arr){//调用quickSort()实现数组的快速排序
if(arr.length>0){
quickSort(arr,0,arr.length-1);
}
}
}
- 黑马程序员-java之快速排序的实现
- 黑马程序员_实现java快速排序代码详解
- 黑马程序员————java实现快速排序
- 黑马程序员:论快速排序的实现姿势
- 黑马程序员技术博客之快速排序
- 数据结构之快速排序的Java实现
- 黑马程序员-----Java之你不得不知道的排序
- 快速排序之Java实现
- 快速排序之java实现
- Java实现之快速排序
- 快速排序之Java实现
- 快速排序之java实现
- 排序算法之快速排序的思想以及Java实现
- 排序之快速排序的java语言简单实现
- 黑马程序员-java学习之排序算法
- 黑马程序员:Java基础之选择排序
- 黑马程序员-------Java基础之选择排序
- 黑马程序员 Java基础之排序
- 生成随机验证码
- SSIS Catalog项目版本管理
- 利用CSS布局做一个简单的荣誉证书
- EventUtil
- Android基础入门教程——2.3.9 RatingBar(星级评分条)
- 黑马程序员-java之快速排序的实现
- 使用文件重定向
- RCP插件的配置
- textview 限制
- 九度OJ 题目1070:今年的第几天?
- python+flask+postgresql 学习
- Basic and Digest Access Authentication (rfc2617) 及HttpClient实现
- 5.1 无继承情况下的对象构造
- linux笔记之3--常用命令