快速排序实例

void sort(int * a,int left,int right) { if(left> = right)/ *如果左边索引大于或者等于右边的索引就代表已经整理完成一个组的* / { 返回; } int i = left; int j = right; int key = a [left]; while(i = a [i]) / *这是我在当组内向前寻找,同上,不过注意与键的大小关系停止循环和上面相反, 因为排序思想是把数往两边扔,所以左右两边的数大小与重点的关系相反* / { 我++; }a [j] = a [i]; }a [i] = key; / *当前组内找完一遍以后就把中间数键回归* / sort(a,left,i-1); / *最后用同样的方式对分出来的左边的小组进行同上的做法* / sort(a,i + 1,right); / *用同样的方式对分出来的右边的小组进行同上的做法* / / *当然最后可能会出现很多分左右,直到每一组的i = j为止* / }


    推荐阅读