首页 > 编程知识 正文

java基础面试题及答案,java核心技术第十一版PDF

时间:2023-05-06 04:57:38 阅读:164296 作者:3655

用快速排序改进冒泡排序

构想:

排序后,选择中间值。 数组分为小于中间值的部分、大于中间值的部分。 进而将左右两个部分分别递归地重新排列

代码实现

import java.util.Arrays; public class quick sort { publicstaticvoidmain (string [ ] args ) int [ ] arr={-9,78,0,23,- 567,70 }; System.out.println ('排序前--'; system.out.println (arrays.tostring (arr ) ); 快速引导(arr,0,arr.length - 1 ); System.out.println ('排序后--'; system.out.println (arrays.tostring (arr ) ); } publicstaticvoidquicksort (int [ ] arr,int start,int end ) ) /结束左右递归if(startend ) /基准数、中间值、基准数//数组中的第0个数字为基准数/int high=end; //循环地去找大于基准数和小于基准数的数。 结束条件为low==highwhile(lowhigh ) /先找高的) /高的小于基准数时更换,大的情况下下标往前走while(lowhighstard=arr ) high ) ) 结束(/)循环后,要交换的数字的下标(/右侧的数字为左arr[low]=arr[high]; lowhighstard=arr [ low ] ) low; (//左边的数字是右边的arr[high]=arr[low]; //low和high重叠时,标准数放在适当位置arr[high]都是arr[low]=stard; //左右排序//递归处理左开始位置---快速停止(arr,start,low )到低位置; //向右从低到高1 --结束位置//lowquicksort(arr,low 1,end ); }}无评论版

import java.util.Arrays; publicclasstestquicksort { publicstaticvoidmain (string [ ] args ) int [ ] arr={-9,78,0,23,- 567,70 }; System.out.println ('排序前--'; system.out.println (arrays.tostring (arr ) ); sort(arr,0,arr.length - 1 ); System.out.println ('排序后--'; system.out.println (arrays.tostring (arr ) ); } privatestaticvoidsort (int [ ] arr,int start,int end ) if ) startend ) { int middle=arr[start]; int left=start; int right=end; while(leftright ) while (left right middle=arr [ right ] ) right----; } arr[left]=arr[right]; while (left right middle=arr [ left ] ); } arr[right]=arr[left]; } arr[left]=middle; sort(arr,start,left ); sort(arr,left 1,end ); }}参考腾讯教室

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