您的位置:首页 > 其它

快速排序的不同语言不同方法实现的…

2017-08-11 23:29 260 查看


C语言版本

 

void
 
sort(
int
 
*a, 
int
 
left, 
int
 
right)


{


    
if
(left >= right)


    
{


        
return
 
;


    
}


    
int
 
i = left;


    
int
 
j = right;


    
int
 
key = a[left];


    
 

    
while
(i < j)                               


    
{


        
while
(i < j && key <= a[j])


        
 

        
{


            
j--;


        
}


        
 

        
a[i] = a[j];


        


        
 

        
while
(i < j && key >= a[i])


        


        
{


            
i++;


        
}


        
 

        
a[j] = a[i];


    
}


    
 

    
a[i] = key;


    
sort(a, left, i - 1);


    
sort(a, i + 1, right);


                       


}


 


JavaScript

 

function
 
quickSort(array){


function
 
sort(prev, numsize){


var
 
nonius = prev;


var
 
j = numsize -1;


var
 
flag = array[prev];


if
 
((numsize - prev) > 1) {


while
(nonius < j){


for
(; nonius < j; j--){


if
 
(array[j] < flag) {


array[nonius++] = array[j]; 
//a[i] = a[j]; i += 1;


break
;


};


}


for
( ; nonius < j; nonius++){


if
 
(array[nonius] > flag){


array[j--] = array[nonius];


break
;


}


}


}


array[nonius] = flag;


sort(0, nonius);


sort(nonius + 1, numsize);


}


}


sort(0, array.length);


return
 
array;


}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: