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

做网站公司叫什么南京百度快速排名优化

做网站公司叫什么,南京百度快速排名优化,网站开发哪种专业,建e室内设计网全景效果图2.认识O(NlogN)的排序_哔哩哔哩_bilibili master公式 有这样一个数组:【0,4,2,3,3,1,2】;假设实现了这样一个sort()排序方法, 将数组二分成左右两等分,使用so…

2.认识O(NlogN)的排序_哔哩哔哩_bilibili

         master公式

        有这样一个数组:【0,4,2,3,3,1,2】;假设实现了这样一个sort()排序方法,

将数组二分成左右两等分,使用sort()对左右两个小数组进行排序,就满足master公式的使用;

或者将数组平均分成三等分,n等分,都满足master公式。



      归并排序

                  

 小和问题

        原数组一分为二,左数组内部求和,右数组内部求和,左右数组比较求和,将三部分小和相加求和。

        左数组内部求和,右数组内部求和的过程就是原数组一分为二小和相加求和的过程。

        问题一:

                定义一个左边界,左指针

                遍历数组,从数组第一个元素开始比较:

                        如果比num值大直接跳过,

                        如果比num值小将边界长度+1,指针右移1位

                直到下标越界,就实现了遍历一遍整个元素时间复杂度o(n),空间复杂度0(1)

        问题二:

                定义一个左边界,左指针,右边界,右指针;

                从数组第一个元素开始比较: 默认先调用左指针

                        如果比num值大将右边界长度+1,右指针左移1位,调用右指针

                        比num值小将左边界长度+1,左指针右移1位,调用左指针。

                直到左右指针相遇。

                



        堆排序

         定义:         

                  通过堆排序算法实现将给定的数组元素按大小构建一个完全二叉树,并且二叉树分为最大堆和最小堆两种类型。

                  最大堆每颗树的父节点是当前树的最大值或者最大值之一;

                  最小堆每棵树的父节点是当前树的最小值或者最小值之一。

         举例:

                  有这样一个数组:

                                 int [ ] n = {0,99,2,2,3};

                  父节点下标father和子节点下标son总满足这样的关系:

                                son =  (father+1)/ 2  或者  

                                son =  (father+2)/ 2  或者  

                                father = (son-1)  /  2      或者 

                                father = (son-2)  /  2 

                                

        思路:

                对于数组每一个值都满足堆排序的定义,那它就是一个最大堆或者最小堆。

                反过来说遍历数组每一个值进行堆排序,最终就能得到最大或最小堆。

                heapify() 堆排序方法

                      1) 对于某一颗树,对比父节点和左右节点,如果最大值还是父节点,那这颗树什么都不需要改变,就是一个最大堆;

                      2)  如果发生左右节点 比 父节点 值大的情况,最大值max给父节点,原父节点值father下来给子节点。

                                这时还要考虑子节点father是不是还要向下移动 ,因为从数组后往前进行heapify(),前面的值还没进行heapify()预先还不知道具体情况和值就被拽下来。

       

        实现代码

public class HeapSort {public static void sort(int[] sort){for(int i =(sort.length - 1) / 2 ; i >= 0; i--) {heapify(sort,i,sort.length);}}public static void  heapify(int[] arr ,int index ,int heapLenth){int max = index;while(true){int left = index*2 +1;int right = left +1;if (left < heapLenth && arr[left]> arr[index]){max = left;}if (right < heapLenth && arr[right] > arr[max]){max = right;}if (max==index)break;swap(arr,max,index);index = max;}}//    public static void heapinsert(int[] nums, int index){
//        if (nums.length<=1)return;
//
//
//        while(true){
//        if (nums[index] > nums [(index-1)/2]){
//            swap(nums,index,(index-1)/2);
//        }else {
//            index++;
//        }
//        if (heapLenth<nums.length){
//            heapLenth++;
//            index = (index-1)/2;
//        }else {
//            break;
//        }
//        }
//
//    }public static void swap(int[] nums,int index, int otherIndex){int temporary = nums[index];nums[index] = nums[otherIndex];nums[otherIndex] = temporary;}public static void main(String[] args) {int[] n = {0,99,2,2,3};
//        int[] n = {0,1,2};
//        heapinsert(n,0);sort(n);System.out.println(Arrays.toString(n));}
}

               输出结果为 [ 99 , 3 , 2  , 2  , 0 ] 

 

http://www.shuangfujiaoyu.com/news/20980.html

相关文章:

  • 响应式网页网站设计引流推广犯法吗
  • 如何查看网站架构什么是关键词广告
  • 平面设计素材网站排行榜前十名个人推广平台
  • 建设局施工许可证网站免费网站java源码大全
  • 宁波做网站的专业公司口碑营销理论
  • 购物网站建设费用浙江seo外包
  • dz论坛做分类网站杭州排名优化公司
  • 一个网站如何挣钱如何做好线上营销
  • 帮忙做文档的网站什么是网站外链
  • 西安网站建设优化班级优化大师免费下载安装
  • 交互式网站设计 深圳微信营销的成功案例
  • 免费做h5的网站宁波seo公司
  • 电子商务网站建设的定义关键词优化报价推荐
  • 企业推广宣传方式商品标题优化
  • 企业网站必须备案seo报告
  • 建设摩托125图片大全seo优化软件哪个好
  • 做h5网站要多少钱百度知道登录
  • 学习做网站只学过c哪里可以接广告
  • 最近国内色情网站做的最好的是哪个百度关键词挖掘查排名工具
  • 做电影网站需要的服务器配置百度移动端排名
  • 网站建设 从用户角度开始网页推广怎么收取费用
  • 厦门网站建设开发中国婚恋网站排名
  • 重庆网站建设外包公司哪家好网课培训机构排名前十
  • 网站的橱窗怎么做app推广方案范例
  • 织梦搬家 网站空白电销名单渠道在哪里找
  • 在线文字编辑器aso优化排名违法吗
  • 天鸿建设集团有限公司 网站seo入门版
  • 网站开发的标准千锋教育靠谱吗
  • wap网站做视频直播夸克搜索引擎
  • 没网站做推广营销软件商城