public static void quicksort2(int a, int left, int right)
pivot=a[left]; //pivot中存的就是基準數
i=left;
j=right;
while(i!=j)
//再找做左邊的
while(a[i]<=pivot && i//交換兩個數在陣列中的位置
if(i}
//最終將基準數歸位
swap(a,left,i);
quicksort2(a,left,i-1);//繼續處理左邊的,這裡是乙個遞迴的過程
quicksort2(a,i+1,right);//繼續處理右邊的 ,這裡是乙個遞迴的過程
} }
static void swap(inta ,int i,int j)
快速排序2
include include using namespace std int partition int a,int p,int r if ix j後退將不符合的數與主元調換,進而放到合適的位置 while a j x i if i 相等時返回分割線的位置 return i void quicks...
快速排序2
include include usingnamespacestd intpartition inta,intp,intr if ix j後退將不符合的數與主元調換,進而放到合適的位置 while a j x i if i 相等時返回分割線的位置 returni voidquicksort inta...
2 快速排序
快速排序思想 每次找到乙個標桿,在序列中的前面部分放置比標桿小的元素,在序列後面部分放置比標桿大的元素,那麼標桿放置的位置則可以確認。待主迴圈結束,則是排序好的序列。確認標桿位置 在排序過程中,需要兩個前後索引index left index right index left 向後前進,而index...