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

有成功案例的网站wordpress 改中文字体

有成功案例的网站,wordpress 改中文字体,制作软件的公司有哪些,长沙网站建设+个人一、堆排序介绍来源百度百科#xff1a;堆排序(Heapsort)是指利用堆积树#xff08;堆#xff09;这种数据结构所设计的一种排序算法#xff0c;它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆#xff0c;是完全二叉树。前面我已经…一、堆排序介绍来源百度百科堆排序(Heapsort)是指利用堆积树堆这种数据结构所设计的一种排序算法它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆是完全二叉树。前面我已经有二叉树入门的文章了当时讲解的是二叉查找树那上面所说的完全二叉树是怎么样的一种二叉树呢还有满二叉树又是怎么的一种二叉树呢甚至还有完满二叉树完全二叉树 除了最后一层之外的其他每一层都被完全填充并且所有结点都保持向左对齐。满二叉树除了叶子结点之外的每一个结点都有两个孩子每一层(当然包含最后一层)都被完全填充。完满二叉树除了叶子结点之外的每一个结点都有两个孩子结点。下面用图来说话完全二叉树(Complete Binary Tree)满二叉树(Perfect Binary Tree)完满二叉树(Full Binary Tree)参考资料www.cnblogs.com/idorax/p/64…简单来说堆排序是将数据看成是完全二叉树、根据完全二叉树的特性来进行排序的一种算法最大堆要求节点的元素都要不小于其孩子最小堆要求节点元素都不大于其左右孩子那么处于最大堆的根节点的元素一定是这个堆中的最大值这里我们讨论最大堆当前每个父节点都大于子节点完全二叉树有个特性左边子节点位置 当前父节点的两倍 1右边子节点位置 当前父节点的两倍 2二、堆排序体验现在我们有一个完全二叉树左子树和右子树都符合最大堆--父子但是我们会发现根元素所在的数并不符合明显的是1是小于7的我们就对其进行交换交换完之后我们会发现右子树又不符合了因为右子树变成了这样最后我们将右子数的最大值也交换到右子树的根元素上于是我们第一次的建堆操作就完成了可以发现的是一次堆建立完之后我们的最大值就在了堆的根节点上随后将堆顶最大值和数组最后的元素进行替换我们就完成了一趟排序了。接下来剩下的数不断进行建堆交换就可以完成我们的堆排序了.........建堆交换....建堆交换...建堆交换...建堆交换..三、堆排序代码实现比较当前父节点是否大于子节点如果大于就交换直到一趟建堆完成/*** 建堆** param arrays 看作是完全二叉树* param currentRootNode 当前父节点位置* param size 节点总数*/public static void heapify(int[] arrays, int currentRootNode, int size) {if (currentRootNode size) {//左子树和右字数的位置int left 2 * currentRootNode 1;int right 2 * currentRootNode 2;//把当前父节点位置看成是最大的int max currentRootNode;if (left size) {//如果比当前根元素要大记录它的位置if (arrays[max] arrays[left]) {max left;}}if (right size) {//如果比当前根元素要大记录它的位置if (arrays[max] arrays[right]) {max right;}}//如果最大的不是根元素位置那么就交换if (max ! currentRootNode) {int temp arrays[max];arrays[max] arrays[currentRootNode];arrays[currentRootNode] temp;//继续比较直到完成一次建堆heapify(arrays, max, size);}}}值得注意的是在上面体验堆排序时我们是左子树和右子数都是已经有父子这么一个条件的了。显然一个普通的数组并不能有这种条件(父子)因此我们往往是从数组最后一个元素来进行建堆/*** 完成一次建堆最大值在堆的顶部(根节点)*/public static void maxHeapify(int[] arrays, int size) {// 从数组的尾部开始直到第一个元素(角标为0)for (int i size - 1; i 0; i--) {heapify(arrays, i, size);}}完成第一次建堆之后我们会发现最大值会在数组的首位接下来不断建堆然后让数组最后一位与当前堆顶(数组第一位)进行交换即可排序for (int i 0; i arrays.length; i) {//每次建堆就可以排除一个元素了maxHeapify(arrays, arrays.length - i);//交换int temp arrays[0];arrays[0] arrays[(arrays.length - 1) - i];arrays[(arrays.length - 1) - i] temp;}四、总结堆排序是比其他排序要难一点他用到了完全二叉树这么一个特性来进行排序代码实现上也比其他排序要复杂一点。参考资料www.cnblogs.com/skywang1234…如果文章有错的地方欢迎指正大家互相交流。习惯在微信看技术文章想要获取更多的Java资源的同学可以关注微信公众号:Java3y
http://www.zqtcl.cn/news/507915/

相关文章:

  • 做网站需要注意的问题seo推广代运营
  • 采购网站大全wordpress decorum
  • wordpress建站教程道一网页效果图素材
  • 广州网站开发哪家专业免费咨询怀孕医生
  • 洛阳网站的优化阿里云购买域名后怎么建网站
  • 我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢网站功能模块设计
  • 叫人做网站多少钱百度免费网站怎样建设
  • 本地南通网站建设新手编程入门先学什么
  • asp网站开发的背景与环境久久建筑网会员
  • 河北省住房建设厅官方网站个人计算机做服务器建网站
  • 上海自助建站费用页游网站
  • 浙江省住建厅网站沈阳网站建设专家
  • 基础建设文本网站施工企业在施工过程中发现设计文件和图纸有差错的应当
  • 做互联网交易网站的条件17网站一起做网店揭阳
  • 做公司网站合同asp.net sql server网站建设 pdf
  • 建筑兼职网站天津网站优化公司哪家好
  • 怎么做网站设计商城型网站开发网站建设
  • 建设网站目录帮别人做网站要投资吗
  • 网站meta 优化建议桥梁建设设计网站
  • 网站建设 甘肃wordpress rss去掉
  • 网站安全检测大连网龙建站优化推广
  • 人才网官方网站公众号排名优化软件
  • 淘宝返利网站建设软件开发哪里学好
  • 烟台网站制作公司如何注册国外网站
  • discuz企业网站网站可以做音频线吗
  • 怎样制作网站教程哪家好制作网页的的网站
  • 网站没有织梦后台无锡seo公司网站
  • 哈尔滨住房和城乡建设厅网站公司网站建设 费用入账
  • 网站图片缩略图t恤图案设计网站
  • 对招聘网站页面设计做建议网站流量 转化率