快速排序C实现(阿里巴巴 2012年全国校招笔试题)
生活随笔
收集整理的這篇文章主要介紹了
快速排序C实现(阿里巴巴 2012年全国校招笔试题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
《快速排序C實現》?這篇文章最早是我原創,2012年發表在當時我的百度空間的一篇文章,沒想到機緣巧合,此題竟然無意中被阿里巴巴選錄,被改成填空題,成為當年阿里巴巴全國校招的筆試題,機緣巧合,可嘆可嘆!現在博客搬家,我重新把這篇文章保持原貌、原封不動從百度空間搬到CSDN新的博客。
#include <stdio.h>/*輸出*/ void show(int [],int);void quickSort(int array[],int left,int right) {if(left>right)return;/*取最左邊的值為pivot(基準)*/int i=left,j=right,pivot=array[left];while(i<j){while( (i<j) && (pivot <= array[j]) )j--;if(i<j)array[i++]=array[j];while( (i<j) && (array[i] <= pivot) )i++;if(i<j)array[j--]=array[i];}array[j]=pivot;/*也可以是 array[i]=piovt。因為此時i=j*/quickSort(array,left,i-1);quickSort(array,i+1,right); }void main() {/*測試數據*///int array[]={4,3,9,0,8,5,7,1,6,2}; int array[]={9,8,7,6,5,4,3,2,1,0,123,22,34,22,56,76,345,221};int LEN=sizeof(array)/sizeof(int);printf("原始數組:\n");show(array,LEN);printf("\n-----\n");quickSort(array,0,LEN-1);printf("\n排序結果:\n");show(array,LEN); }/*打印*/ void show(int a[],int len) {int i;for(i=0;i<len;i++)printf("%d ",a[i]); }
總結
以上是生活随笔為你收集整理的快速排序C实现(阿里巴巴 2012年全国校招笔试题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 的函数参数值类型限定
- 下一篇: plsql动态的sql