贴两个我Github上的quicksort代码。我曾经参加面试的时候,也会默默给面试公司和面试官做个评价。其中一个评价标准就是quicksort,很讽刺的是,一般会考察quicksort的互联网公司一般不会是规模较大的企业,多少有点水,而面试官不是态度比较散漫,就是水平较差。虽然我已倒背如流。
public static void quicksort(int[] array,int left,int right){int index=partition(array,left,right);if(left<index-1){quicksort(array,left,index-1);}if(index<right){quicksort(array,index,right);}}private static int partition(int[] array,int left,int right){int pivot=array[(left+right)/2];while(left<=right){while(array[left]<pivot) left++;while(array[right]>pivot) right--;if(left<=right){int i=array[left];array[left]=array[right];array[right]=i;left++;right--;}}return left;}Java版本
<?phpfunction quicksort(&$arr,$left,$right){$index=partition($arr,$left,$right);if($left<$index-1) quicksort($arr,$left,$index-1);if($index<$right) quicksort($arr,$index,$right);}function partition(&$arr,$left,$right){$pivot=$arr[($left+$right)/2];while($left<=$right){while($pivot>$arr[$left]) $left++;while($pivot<$arr[$right]) $right--;if($left<=$right){$s=$arr[$left];$arr[$left]=$arr[$right];$arr[$right]=$s;$left++;$right--;}}return $left;}?>PHP版本
文章评论