; 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