[問題] 關於qsort
開發平台(Platform): VC++2008
問題(Question):流程不是很懂
程式碼(Code):
#define SWAP(a,b)
{
int temp = b; b = a; a = temp;
}
void qsort(int* x, int l, int r)
{
int i, last;
if (l >= r) return; else last = l;
for (i = l + 1; i <= r; i++)
if (x[i] < x[l])
{
last++; SWAP(x[last],x[i]);
}
SWAP(x[last],x[l]);
qsort(x, l, last - 1);
qsort(x, last + 1, r);
}
補充說明(Supplement):
為什麼x[i] < x[l]就要交換x[last]跟x[i] 然後又把x[last]跟x[l]交換呢?
最後為何要用兩個qsort呢?
完全沒學過資料結構就要我用這個qsort去做linked list orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.171.24
→
10/24 19:05, , 1F
10/24 19:05, 1F
→
10/24 19:06, , 2F
10/24 19:06, 2F
→
10/24 19:09, , 3F
10/24 19:09, 3F
推
10/24 19:10, , 4F
10/24 19:10, 4F
→
10/24 19:11, , 5F
10/24 19:11, 5F
→
10/24 19:13, , 6F
10/24 19:13, 6F
→
10/24 19:13, , 7F
10/24 19:13, 7F
推
10/24 19:14, , 8F
10/24 19:14, 8F
→
10/24 19:16, , 9F
10/24 19:16, 9F
→
10/24 19:42, , 10F
10/24 19:42, 10F
推
10/24 20:04, , 11F
10/24 20:04, 11F
→
10/24 21:41, , 12F
10/24 21:41, 12F
→
10/24 21:55, , 13F
10/24 21:55, 13F
→
10/24 21:56, , 14F
10/24 21:56, 14F
→
10/24 22:04, , 15F
10/24 22:04, 15F
推
10/25 01:00, , 16F
10/25 01:00, 16F
→
10/25 01:00, , 17F
10/25 01:00, 17F
→
10/25 01:01, , 18F
10/25 01:01, 18F
推
10/25 10:25, , 19F
10/25 10:25, 19F
推
10/25 22:29, , 20F
10/25 22:29, 20F