设为首页 加入收藏

TOP

堆与堆排序(五)
2017-10-10 14:16:14 】 浏览:5283
Tags:排序
;    for (int i = (s.length/2-1); i >= 0; i--) {

         int index = i;

         while(index<=s.length/2-1){

            int left=index*2+1;

            int right=index*2+2;

            int large ;

            if(right<s.length && s[right]>s[left]) large = right;

            else large = left;

            if(s[index]>s[large]) break;

            else{

                int temp = s[index];

                s[index]=s[large];

                s[large]=temp;

                index = large;

            }

         }

      }

     

      //第二步,进行根节点与无序区最后一个元素交换

      for (int i = s.length-1; i >= 0 ; i--) {

         int temp = s[i];

         s[i] = s[0];

         s[0] = temp;

         int index=0;

         while(index < i/2){

            int left = index*2+1;

            int right = index*2+2;

            int large;

            if(right<i && s[right]>s[left]) large = right;

            else large = left;   

            int index2=index;

            if(s[index]>s[large]) break;

            else {

                int t = s[index];

                s[index] = s[large];

                s[large] = t;

                index = large;

&nbs

首页 上一页 2 3 4 5 下一页 尾页 5/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spring工作原理 下一篇设计模式的思考

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目