有了域名 接下来怎么做网站,php招投标网站源码,wordpress后台登陆模板,wordpress的字体颜色如何更改目录 一、问题描述
二、解题思路
1.初始化
2.将右侧小于基准元素移到左边
3.将左侧大于基准元素移到右边
4.重复执行上面的操作
5.对分好的左、右分区再次执行分区操作
6.最终排序结果
三、代码实现
四、刷题链接 一、问题描述 二、解题思路
快排算法实现数组排序快排的核心步骤是分区操作。
下面详细图解一次分区过程
1.初始化 2.将右侧小于基准元素移到左边 赋值后相当于下面的情形 3.将左侧大于基准元素移到右边
然后开始比较arr[low]和pivot的大小和上图作对比 赋值后的数组为 4.重复执行上面的操作
再次修改high左移--移动元素再次修改low右移移动元素当lowhigh时停止完成一次分区操作 5.对分好的左、右分区再次执行分区操作
分区返回的是中间元素位置我们要对左、右两个子分区再次执行分区操作每次分区都会确定一个中间位置后序不会再变当分区内元素都为1的时候快排结束。 6.最终排序结果 三、代码实现
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可** 将给定数组排序* param arr int整型一维数组 待排序的数组* return int整型一维数组*/public int[] MySort (int[] arr) {// 使用快排排序QuickSort(arr,0,arr.length-1);return arr;}public int partition(int[] arr,int low,int high){int pivotarr[low];//分界元素//System.out.println(low:low,high:high);while(lowhigh){while(arr[high]pivot){//右侧元素大于pivot不移动if(lowhigh){break;}high--;}arr[low]arr[high];//现在的arr[high]已经没有元素了while(arr[low]pivot){//左侧元素小于等于pivot不移动if(lowhigh){break;}low;}arr[high]arr[low];}//此时low位置就是初始的分界元素应该在的位置arr[low]pivot;return low;}public void QuickSort(int[] arr,int low,int high){int pivotIndexpartition(arr,low,high);if(lowpivotIndex-1){QuickSort(arr,low,pivotIndex-1);}if(highpivotIndex1){QuickSort(arr,pivotIndex1,high);}}
}
快排算法里面要注意边界条件这个好好思考一下。
如果考研的话可以写伪代码边界条件可以考虑的少一点
排序算法相关代码-CSDN博客文章浏览阅读108次。【代码】排序算法相关代码。https://blog.csdn.net/hehe_soft_engineer/article/details/134235961下面是之前写的排序算法的C实现属于伪代码应试的话可以参考一下 四、刷题链接
排序_牛客题霸_牛客网