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

南昌互联网网站开发教育直播平台网站建设费用

南昌互联网网站开发,教育直播平台网站建设费用,做3d图的网站,网站网络营销外包属性 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法#xff0c;其基本思想为#xff1a;任取待排序元素序列中的某元 素作为基准值#xff0c;按照该排序码将待排序集合分割成两子序列#xff0c;左子序列中所有元素均小于基准值#xff0c;右子序列中所有 …属性 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法其基本思想为任取待排序元素序列中的某元 素作为基准值按照该排序码将待排序集合分割成两子序列左子序列中所有元素均小于基准值右子序列中所有 元素均大于基准值然后最左右子序列重复该过程直到所有元素都排列在相应位置上为止。 . 1.快速排序整体的综合性能和使用场景都是比较好的所以才敢叫快速排序 2. 时间复杂度O(N*logN) 代码及注释递归写法 public static void quickSort(int[]arr){quick1(arr,0,arr.length-1);}private static void quick(int[]arr,int begin,int end){//出递归if(beginend){return;}//由于参考值的取值要尽量取数据的中间值所以我们可以拿beginend和mid下标的中间值来作为参考值//获得了中间值的下标tmpIndexint tmpIndexthreeMid(arr,begin,end);//将中间值交换到第一个位置作为参考值swap(arr,begin,tmpIndex);//进行数据的划分将小于参考值的数据放到左边大于参考值的数据放到右边//得到划分好数据后参考值最终放到的位置参考值排序后的下标int ridparttion1(arr,begin,end);//以同样的方式划分参考值左边和右边的数据quick(arr,begin,rid-1);quick(arr,rid1,end);}//进行begin-end范围内数据的划分将小于参考值的数据放到左边大于参考值的数据放到右边private static int parttion1(int[]arr,int begin,int end){//用挖坑法进行划分int tmparr[begin];while (beginend){//现在begin下标相当于已经没有数据了是一个坑要通过end下标找到一个比参考值小的值放到这个坑中while (beginendarr[end]tmp){end--;}//跳出了上面的循环说明找到了一个比参考值小的数据//将数据放到坑中arr[begin]arr[end];//现在end下标相当于已经没有数据了是一个坑要通过begin下标找到一个比参考值大的值放到这个坑中while (beginendarr[begin]tmp){begin;}//跳出了上面的循环说明找到了一个比参考值大的数据//将数据放到坑中arr[end]arr[begin];}//当begin和end指向一个下标时便退出了循环而他们指向的这个下标是一个坑没有数据//将参考值放到这个坑中arr[begin]tmp;//返回参考值所在的下标方便去划分参考值左边和右边的数据return begin;}//在array数组中找到下标beginmidend的中间值private static int threeMid(int[] array,int begin,int end){int mid(beginend)/2;if(array[begin]array[end]){if(array[end]array[mid]){return end;}else if(array[mid]array[begin]){return begin;}else {return mid;}}else {if (array[mid]array[end]){return end;} else if (array[begin]array[end]) {return begin;}else {return mid;}}}private static void swap(int[] array,int m,int n){int tmparray[m];array[m]array[n];array[n]tmp;}代码及注释非递归写法 其实非递归写法的思路和递归相同只是非递归要自己创建一个栈来模拟出递归的效果而已 //非递归实现快速排序public static void quickSortNoRrcur(int[] array) {//当排序的数目小于一定范围时直接用插入排序if(array.length5){InsertSort insertSortnew InsertSort();insertSort.insertSort(array);return;}StackInteger stacknew Stack();int start0;int endarray.length-1;//三数取中int midIndexthreeMid(array, start, end);//把三个数中位于中间的值放到第一位swap(array,start,midIndex);//挖坑法将比array[begin]小的放左边大的放右边int ridparttion(array, start, end);//判断是否满足入栈条件if(ridstart1){stack.push(start);stack.push(rid-1);}if(ridend-1){stack.push(rid1);stack.push(end);}while (!stack.empty()){endstack.pop();startstack.pop();//当排序的数目小于一定范围时直接用插入排序if(end-start15){InsertSort insertSortnew InsertSort();insertSort.insertSort(array);return;}//三数取中midIndexthreeMid(array, start, end);//把三个数中位于中间的值放到第一位swap(array,start,midIndex);//挖坑法将比array[begin]小的放左边大的放右边ridparttion(array, start, end);//判断是否满足入栈条件if(ridstart1){stack.push(start);stack.push(rid-1);}if(ridend-1){stack.push(rid1);stack.push(end);}}}private static int threeMid(int[] array,int begin,int end){int mid(beginend)/2;if(array[begin]array[end]){if(array[end]array[mid]){return end;}else if(array[mid]array[begin]){return begin;}else {return mid;}}else {if (array[mid]array[end]){return end;} else if (array[begin]array[end]) {return begin;}else {return mid;}}}private static void swap(int[] array,int m,int n){int tmparray[m];array[m]array[n];array[n]tmp;}
http://www.w-s-a.com/news/947616/

相关文章:

  • 怎样换网站logo公司名字大全集免费
  • 为网站网站做推广各类最牛网站建设
  • 网站用自己的电脑做服务器佛山做网站制作公司
  • 一个网站如何做cdn加速器如何上传网站数据库
  • 汝州住房和城乡建设局新网站营销网站定位
  • yy直播官网seo引擎优化是什
  • 做影视网站违法莫品牌营销是什么
  • 全网最稳最低价自助下单网站wordpress电影网站主题
  • 域名更换网站温州建设工程网站
  • 网站如何优化推广连锁店管理网站开发
  • 伊宁市做网站功能性质网站
  • 北京哪个网站制作公司优化大师免费安装下载
  • 同江佳木斯网站设计做网站联系电话
  • 设计上海展会2023seo网站模板下载
  • 开发一个卖东西的网站多少站长工具永久
  • 公司网站怎么突然多了好多友情链接如何删除宁波有几个区
  • 临沂seo网站推广wordpress新编辑器
  • c2c网站设计店面logo设计制作
  • 网站建设任务执行书重庆今天新闻事件
  • 怎样发布自己的网站南宁制作网站公司
  • wordpress装多站点百度查一下
  • 怎么优化一个网站搭建网站免费空间
  • 山东建设和城乡建设厅注册中心网站首页wordpress安装教材
  • 个人风采网站制作毕节网站开发公司电话
  • 网络网站销售设计主题和设计理念
  • 做网站一般用什么服务器承德专业做网站
  • 松北区建设局网站网站建设分为几种
  • 网站建设的合同 体会智联招聘网站建设情况
  • 记的网站域名wordpress地方信息主题
  • 淄博好的建网站公司网站建设 海口