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

校园网站做自己的广告小蝌蚪幸福宝入口导航

校园网站做自己的广告,小蝌蚪幸福宝入口导航,网站改域名如何做百度优化,合肥网站关键词优化递归排序是一种基于分治法的排序算法,最典型的例子就是快速排序和归并排序。这两种算法都利用递归将问题分解成更小的子问题,然后将子问题的解合并以得到原始问题的解。 1、快速排序(Quick Sort) 快速排序的基本思想是选择一个基…

递归排序是一种基于分治法的排序算法,最典型的例子就是快速排序和归并排序。这两种算法都利用递归将问题分解成更小的子问题,然后将子问题的解合并以得到原始问题的解。

1、快速排序(Quick Sort)

快速排序的基本思想是选择一个基准元素,将序列分割成两个子序列,小于基准元素的放在左边,大于基准元素的放在右边,然后对左右子序列递归地进行快速排序。

public class QuickSort {public static void quickSort(int[] arr) {if (arr == null || arr.length == 0) {return;}quickSort(arr, 0, arr.length - 1);}private static void quickSort(int[] arr, int left, int right) {if (left >= right) {return;}int pivot = partition(arr, left, right); // 分区操作,返回基准元素的位置quickSort(arr, left, pivot - 1); // 递归排序左子数组quickSort(arr, pivot + 1, right); // 递归排序右子数组}private static int partition(int[] arr, int left, int right) {int pivot = arr[right]; // 选择最右边的元素作为基准int i = left - 1; // i指向小于基准元素的最后一个元素for (int j = left; j < right; j++) {if (arr[j] < pivot) {i++;swap(arr, i, j); // 将小于基准的元素交换到左边}}swap(arr, i + 1, right); // 将基准元素交换到正确的位置return i + 1; // 返回基准元素的位置}private static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}public static void main(String[] args) {int[] arr = { 5, 2, 9, 3, 6, 1, 8, 7, 4 };quickSort(arr);System.out.println("array: " + Arrays.toString(arr));}
}

2、归并排序(Merge Sort)

归并排序采用分治法,将序列分成两个子序列,分别对它们进行排序,然后将已排序的子序列合并成一个有序序列。

public class MergeSort {public static void mergeSort(int[] arr) {if (arr == null || arr.length < 2) {return;}int[] temp = new int[arr.length];mergeSort(arr, 0, arr.length - 1, temp);}private static void mergeSort(int[] arr, int left, int right, int[] temp) {if (left < right) {int mid = (left + right) / 2;mergeSort(arr, left, mid, temp); // 对左半部分进行归并排序mergeSort(arr, mid + 1, right, temp); // 对右半部分进行归并排序merge(arr, left, mid, right, temp); // 合并左右两部分}}private static void merge(int[] arr, int left, int mid, int right, int[] temp) {int i = left; // 左序列指针int j = mid + 1; // 右序列指针int t = 0; // 临时数组指针while (i <= mid && j <= right) {if (arr[i] <= arr[j]) {temp[t++] = arr[i++];} else {temp[t++] = arr[j++];}}while (i <= mid) {temp[t++] = arr[i++]; // 将左边剩余元素填充进temp中}while (j <= right) {temp[t++] = arr[j++]; // 将右边剩余元素填充进temp中}t = 0;// 将temp中的元素全部拷贝到原数组中while (left <= right) {arr[left++] = temp[t++];}}public static void main(String[] args) {int[] arr = { 5, 2, 9, 3, 6, 1, 8, 7, 4 };mergeSort(arr);System.out.println("array: " + Arrays.toString(arr));}
}

http://www.dinnco.com/news/54717.html

相关文章:

  • 机加工网站seo的概念
  • 延边省建设局网站官网aso优化排名
  • 做网站可以设账户吗网络推广工具和方法
  • 安徽建筑培训网合肥网站优化方案
  • 温州网站制作系统20个排版漂亮的网页设计
  • 怎么做简单的微信浏览的网站合肥网站推广
  • 纯div css做网站简洁版衡阳seo快速排名
  • 网站建设公司的问答营销案例互联网推广是什么
  • 无锡网站制作厂家地址最新国内新闻事件今天
  • 做网站建设要什么证智推教育seo课程
  • 电玩网站开发百度域名购买
  • 网站空间500mb网站优化推广怎么做
  • 十大装修公司排名哪家最好旺道seo优化软件
  • 深圳做网站的好公司有哪些在线企业管理培训课程
  • 佛山网站建设 天博重庆网页优化seo
  • 直接买个域名就能自己做网站互联网app推广具体怎么做
  • 网站运营与建设作业百度指数人群画像哪里查询
  • wordpress不显示中文图片360优化大师app
  • 小型手机网站建设企业网站加速
  • 电商是什么职业win7优化大师官网
  • 一级a做爰片免费网站黄最近发生的重大新闻
  • wordpress 传媒主题seo关键词优化推广外包
  • 合肥做个网站什么价格青山seo排名公司
  • 慈城旅游网站建设策划书域名注册免费
  • 武汉光谷做网站价格网站系统开发
  • 怎么做单页竞价网站营销的主要目的有哪些
  • 广州建站外贸网站百度推广收费多少
  • 一站式服务的好处房产网站建设
  • 福州网站建设信息网站建设服务
  • 做图的赚钱的网站营销网络的建设怎么写