当前位置: 首页 > news >正文

北京医疗网站建设网站建设工具

北京医疗网站建设,网站建设工具,格子网wordpress主题,北京上地做网站目录 题目1-思路-快排1-1 快排的核心思想快速排序算法步骤优美的调整区间 1-2 ⭐快排的实现 2- 实现⭐912. 排序数组——题解思路 3- ACM 实现 题目 原题连接:912. 排序数组 1-思路-快排 1-1 快排的核心思想 选择一个基准 基准左侧的元素都小于该元素基准右侧的元…

目录

  • 题目
  • 1-思路-快排
    • 1-1 快排的核心思想
      • 快速排序算法步骤
      • 优美的调整区间
    • 1-2 ⭐快排的实现
  • 2- 实现
    • ⭐912. 排序数组——题解思路
  • 3- ACM 实现

题目

  • 原题连接:912. 排序数组

1-思路-快排

1-1 快排的核心思想

  • 选择一个基准
    • 基准左侧的元素都小于该元素
    • 基准右侧的元素都大于该元素

image.png

快速排序算法步骤

  • ① 确定分界点:
    • 方式有三种:第一种取左边界点 q[ l ];第二种取中间点q[ l+r ];第三种取右边界点q[ r ];随机
  • ② 调整区间(★难点)
    • 使得左半边区间内的数都小于等于 x ;右半边区间内的数都大于等于 x
  • ③ 递归
    • 递归处理左右两段

优美的调整区间

  • 用两个指针分别指向数组的左边和右边,两个指针同时往中间走。
  • 如果指针 i 指向的数组的元素值小于 x ,则指针 i 向右移动一位,以此类推一直往下移动,直到指针 i 所指向的某个元素的值 大于等于 x,此时指针 i`` 停下不动。
  • 同理此时移动指针 j ,若指针 j 指向的元素的值大于等于 x 则指针 j 便向左移动,直到移动到 j 所指向的值小于等于 x

766AC1FD4EB24C2579F850B29BD8E35B.png

  • 当两个指针都停下来的时候,swap 交换两个指针指向的数,之后两个指针继续往中间走,以此类推直到两个指针相遇为止。

1-2 ⭐快排的实现

在这里插入图片描述

    public void quickSort(int[] nums,int left,int right){if(right<=left) return;// 定义 int i = left-1;int j = right+1;int x = nums[(i+j)/2];while(i<j){do{i++;}while(nums[i]<x);do{j--;}while(nums[j]>x);if(i<j){int tmp = nums[i];nums[i] = nums[j];nums[j] = tmp;}}quickSort(nums,left,j);quickSort(nums,j+1,right);}

2- 实现

⭐912. 排序数组——题解思路

在这里插入图片描述

class Solution {public int[] sortArray(int[] nums) {quickSort(nums,0,nums.length-1);return nums;}public void quickSort(int[] nums,int left,int right){if(right<=left) return;// 定义 int i = left-1;int j = right+1;int x = nums[(i+j)/2];while(i<j){do{i++;}while(nums[i]<x);do{j--;}while(nums[j]>x);if(i<j){int tmp = nums[i];nums[i] = nums[j];nums[j] = tmp;}}quickSort(nums,left,j);quickSort(nums,j+1,right);}
}

3- ACM 实现

public class quickSort {public static void quickSort(int[] nums,int left,int right){if(right<=left) return;// 定义int i = left-1;int j = right+1;int x = nums[(i+j)/2];while(i<j){do{i++;}while(nums[i]<x);do{j--;}while(nums[j]>x);if(i<j){int tmp = nums[i];nums[i] = nums[j];nums[j] = tmp;}}quickSort(nums,left,j);quickSort(nums,j+1,right);}public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入数组长度");int n = sc.nextInt();int[] nums = new int[n];for(int i = 0 ;i < n;i++){nums[i] = sc.nextInt();}quickSort(nums,0,nums.length-1);System.out.println("排序结果为");for (int i:nums){System.out.print(i+" ");}}
}
http://www.yayakq.cn/news/830841/

相关文章:

  • flash网站片头动画一个软件app
  • 建设银行网站可以更改个人电话wordpress $comment
  • 厦门 网站建设一个微信小程序多少钱
  • 清华科技园的网站谁做的东莞网站推广大全
  • 律师建网站wordpress首页页面设置
  • 建设刷单网站seo 网站结构
  • 网站升级的内容包括哪些一站式网站
  • 农家乐网站建设创新的福州网站建设
  • win8风格网站 源码做视频网站服务器配置
  • 邢台龙天网络科技有限公司seo查询站长工具
  • 响应式英文网站建设做产品推广的网站有哪些
  • 深圳做网站的公司革吉网站建设
  • 坪山网站建设要多少钱网站建设实训作业
  • 做网站用后缀好wordpress 封ip段
  • 网站建设不力 被问责肇庆免费模板建站
  • 设计制作网站收费网络公司市值最新排名
  • 重庆建站公司做传奇网站云服务器地域改选哪里
  • 网站主机选择cms智能云平台
  • 网站建设实训总结2000字qq个人中心网页版
  • 做一网站优化要多少钱如何提升网站的收录量
  • 怎么发布个人网站佛山人才招聘网
  • 电子商务网站建设教学总结建立一个公司网站
  • 单位网站建设意见建议js网站计数器代码
  • 常见的电子商务网站网址网站转移空间备案是不是就没有了
  • 南通优化网站排名建游戏网站
  • 江苏省交通建设局网站首页成都市房产管理局官网
  • 彩票的网站怎么做备案网站可以做卡盟么
  • 湖南门户网站设计公司微信微网站教程
  • 个人网站免费制作wordpress 用户密码
  • 揭阳手机网站建设专业搜索引擎seo服务商