首页 > 编程知识 正文

java归并排序算法,java快速排序代码

时间:2023-05-03 09:23:56 阅读:31653 作者:2738

1、快速排序1.1介绍快速排序(quicksort )是一种通过鼓泡进行排序的改进。 将按基本思想:次排序的数据分为两个独立部分,其中一个部分的所有数据都小于其他部分的所有数据,然后用这种方法快速对这两个部分的数据进行排序。 可以递归地执行整个排序过程,以确保整个数据按顺序排列。

http://www.Sina.com/http://www.Sina.com /

1.2代码实现图解:

在给定的数组中,找出中间值,进而找出左右两边的大于等于中间值和小于等于中间值的数,进行交换,得到中间值为边界的两个数组,并分别进行递归解析。 (请注意这个pivot也在工作! )

gif图解:

public class quick sort { publicstaticvoidmain (string [ ] args ) int [ ] arr={ 3,5,8,1,2,9,4,7,6 }; 快速排序(arr,0,arr.length-1 ); 系统. out.println (arrays.tostring (arr ) ); } publicstaticvoidquicksort (int [ ] arr,int left,int right ) intL=left; //左下标int r=right; //右下标//中轴值intpivot=arr[(leftright )/2; int temp=0; //更换用//将大于pivot的持续寻找右,将小于的持续寻找左while(lr )//进而寻找到pivot的左侧,找到pivot以上的值后才结束while(lr ) l (pivot ) ) L=1 (//再一直找pivot的右侧,找到pivot以下的值,然后while(arr[r]pivot ) ) { r-=1; (//遍历完成if(L=R ) ) {break; temp=arr[l]; arr[l]=arr[r]; arr[r]=temp; //更换后,该arr[l]==pivot,等于r--,前进的if(arr[l]==pivot ) {r-=1; //更换后,如果找到该arr[r]==pivot,相等的l,请输入if(arr[r]==pivot ) {l=1; }//L==R时,必须为l,r--,否则堆栈溢出if(L===R ) {l=1; //2r-=1; //0(//左为if(leftr ) )快速排序(arr,left,r ); (//右递归if(rightl ) quicksort ) ARR,l,right ); }}} 思路:

完成快速排序!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。