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

瑞安微网站建设广州推广

瑞安微网站建设,广州推广,零基础怎么做网站,wordpress后台编辑主题时提示:抱歉_该文件无法被编辑快速排序介绍 快速排序是一种经典高效的排序方法#xff0c;是分治策略在排序上的具体体现。将一个大的待排序列分割成若干个小的有序序列#xff0c;最终将各个小的有序序列合并成一个大的有序序列。 快速排序的实现原理 选择一个基准值#xff0c;将小于基准值的元素放…快速排序介绍 快速排序是一种经典高效的排序方法是分治策略在排序上的具体体现。将一个大的待排序列分割成若干个小的有序序列最终将各个小的有序序列合并成一个大的有序序列。 快速排序的实现原理 选择一个基准值将小于基准值的元素放在基准值左侧大于基准值的元素放在基准值右侧基准值放在中间。基准值可以选择待排序列的第一个元素最后一个元素中间元素也可以选择三者的中位数提高快排效率。一轮快速排序后基准值已经有序之后对基准值两侧的数据分别进行快排这是一个递归的过程最终整个序列有序。整个过程类似于树的前序遍历每一轮的过程使用双指针所以快排本质上是树的前序遍历双指针。 快速排序的具体实现 基准值选择不同代码实现不同但本质上都是树的前序遍历双指针 选择第一个元素作为基准值代码实现 代码实现 public void quickSort(int[] array, int left, int right) {if (left right) {int pivot array[left];int i right 1;for (int j right; j left; j--) {if (array[j] pivot) {i--;int temp array[i];array[i] array[j];array[j] temp;}}int pivotIndex i - 1;int temp array[pivotIndex];array[pivotIndex] array[left];array[left] temp;quickSort(array, left, pivotIndex - 1);quickSort(array, pivotIndex 1, right);} }选择最后一个元素作为基准值代码实现 代码实现 public void quickSort(int[] array, int left, int right) {if (left right) {int pivot array[right];int i left - 1;for (int j left; j right; j) {if (array[j] pivot) {i;int temp array[i];array[i] array[j];array[j] temp;}}int pivotIndex i 1;int temp array[pivotIndex];array[pivotIndex] array[right];array[right] temp;quickSort(array, left, pivotIndex - 1);quickSort(array, pivotIndex 1, right);} }选择中值作为基准值代码实现 代码实现 public static void quickSort(int[] array, int start, int end) {if (start end) {return;}int left start;int right end;int mid (left right) / 2;int pivot array[mid];while (left right) {while (left right array[left] pivot) {left;}while (left right array[right] pivot) {right--;}if (left right) {int temp array[left];array[left] array[right];array[right] temp;left;right--;}}quickSort(array, start, right);quickSort(array, left, end); }快速排序复杂度分析 时间复杂度 平均情况下O(n log n)。在平均情况下快速排序通常具有优秀的性能。每次分割都将数组分为两部分每部分的大小约为原数组的一半。因此在进行 log n 次递归后每个子数组都会被完全排序总的时间复杂度是 O(n log n)。 最坏情况下O(n^2)。最坏情况发生在选择基准值不平衡的情况下导致每次分割只能减少一个元素。例如如果数组已经有序或接近有序且始终选择第一个元素作为基准值那么就会出现最坏情况。为了避免最坏情况可以使用随机选择基准值或者三数取中法等策略。 最好情况下O(n )。最好情况发生在数组有序 空间复杂度 快速排序是一种原地排序算法不需要额外的内存空间因此其空间复杂度是 O(1)。 稳定性 快速排序是不稳定的排序算法即相等元素的相对顺序可能在排序后改变。
http://www.w-s-a.com/news/223853/

相关文章:

  • 做旅游宣传网站的流程图中国企业集成网电子商务
  • 开发商城网站开发成交功能网站
  • 网站建设公司专业公司排名搭建网站的企业
  • 网站建设难吗海南智能网站建设报价
  • 企业网站建设选题的依据及意义校园网站建设的论文
  • 网站版面设计方案水电维修在哪个网站上做推广好些
  • 邹平建设局官方网站企业宣传片广告公司
  • 南京建设集团网站建站极速通
  • 网站建设与推广员岗位职责网站开发应如何入账
  • 企业网站的作用和目的手机回收站
  • 大连零基础网站建设培训电话郎溪做网站
  • 成都科技网站建设注册公司最少需要多少注册资金
  • 找公司做网站注意事项麻城建设局网站停办
  • 沧州企业做网站wordpress 消息通知
  • 网站开发外包计入什么科目怎样申请网站空间
  • 西安建设局网站小孩把巴塘网站建设
  • 做网站 客户一直要求改郑州做优惠券网站的公司
  • 专门做特卖的网站是什么东北石油大学秦皇岛吧
  • 网站建设需要云主机吗wordpress 下载数据表插件
  • 集团网站建设哪个好石龙镇仿做网站
  • 网站建设费税率是多少项目备案信息查询
  • 网站开发php有哪些权威发布型舆情回应
  • 凡科建站有哪些弊端百度手机怎么刷排名多少钱
  • 南山网站公司在招聘网站做销售工资高吗
  • 百度联盟怎么加入赚钱合肥seo按天收费
  • 网站建设与用户需求分析加盟店排行榜加盟项目排行榜
  • 柳州市诚信体系建设网站wordpress建手机网站吗
  • 网站策划书是什么水产公司网站源码
  • 温州做网站多少钱网站服务器机房
  • 网站公司设计 网站首页什么网站专门做图片