首页 > 编程知识 正文

hashmap修改value,java集合

时间:2023-05-05 13:30:25 阅读:19864 作者:2911

快速排序的基本思想

要排序的记录在一次排序中分为两个独立的部分,如果一个记录的关键字小于另一个关键字,则继续对每个部分进行排序,直到整个序列按顺序排列。

快速排序的示例

(a )排序的程序:

(b )排序的全过程

将整个数组视为一个数组,将第零个位置视为中心轴,如果是与最后一个位置相比,小于它的交换,则大于它,什么也不做; 交换后和小的相比,小的不交换,换比他大的。 这样循环往复,一次排序完成后,左侧比中心轴小,右侧比中心轴大。 然后,使用分割统治法对这两个独立的数组分别进行排序。

代码实现如下:

public class sort {//publicstaticvoidmain (string [ ] args ) int ) ) a={ 49、38、65、97、76、13、27、49、78、systtted for(intI=0; ia.length; I ) system.out.print(a[I] ' ); )快速排序(a,0,a.length-1 ); System.out.println ('排序后:'); for(intI=0; ia.length; I ) system.out.print(a[I] ' ); } publicstaticvoidquicksort (int [ ] targetarr,int start,int end ) int start,j=end; int key=targetArr[start]; while(ij ) )将目标数组设置为小于while(jitargetarr[j]key ) key的值j--; (if ) ij ) { targetArr[i]=targetArr[j]; //targetArr[i]已存储在密钥中,可以将以后的数据填充到I中; }while(ijtargetarr[I]key ) /沿I方向遍历目标数组至大于key的值) I; (if ) ij ) { targetArr[j]=targetArr[i]; //targetArr[j]已存储在targetArr[i]中,当前值为j----; }//此时i==j targetArr[i]=key; if(starti ) ) quicksort(targetarr,start,i-1 ); //递归调用,对密钥的上一个完成进行排序(if )结束(quicksort ) targetarr,j 1,结束); //递归调用以对key后面的完成进行排序}}

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