PKUOS - Pintos
Pintos source browser for PKU Operating System course
|
Go to the source code of this file.
Functions | |
static unsigned char | pick_pivot (unsigned char *buf, size_t size) |
Picks a pivot for the quicksort from the SIZE bytes in BUF. More... | |
static bool | is_partitioned (const unsigned char *array, size_t size, unsigned char pivot, size_t left_size) |
Checks whether the SIZE bytes in ARRAY are divided into an initial LEFT_SIZE elements all less than PIVOT followed by SIZE - LEFT_SIZE elements all greater than or equal to PIVOT. More... | |
static void | swap (unsigned char *a, unsigned char *b) |
Swaps the bytes at *A and *B. More... | |
static size_t | partition (unsigned char *array, size_t size, int pivot) |
Partitions ARRAY in-place in an initial run of bytes all less than PIVOT, followed by a run of bytes all greater than or equal to PIVOT. More... | |
static bool | is_sorted (const unsigned char *buf, size_t size) |
Returns true if the SIZE bytes in BUF are in nondecreasing order, false otherwise. More... | |
void | qsort_bytes (unsigned char *buf, size_t size) |
Sorts the SIZE bytes in BUF into nondecreasing order, using the quick-sort algorithm. More... | |
|
static |
Checks whether the SIZE bytes in ARRAY are divided into an initial LEFT_SIZE elements all less than PIVOT followed by SIZE - LEFT_SIZE elements all greater than or equal to PIVOT.
Definition at line 19 of file qsort.c.
Referenced by partition().
Returns true if the SIZE bytes in BUF are in nondecreasing order, false otherwise.
Definition at line 100 of file qsort.c.
References buf.
Referenced by qsort_bytes().
Partitions ARRAY in-place in an initial run of bytes all less than PIVOT, followed by a run of bytes all greater than or equal to PIVOT.
Returns the length of the initial run.
Definition at line 48 of file qsort.c.
References ASSERT, is_partitioned(), and swap().
Referenced by qsort_bytes().
|
static |
Picks a pivot for the quicksort from the SIZE bytes in BUF.
Definition at line 8 of file qsort.c.
References ASSERT, buf, and random_ulong().
Referenced by qsort_bytes().
void qsort_bytes | ( | unsigned char * | buf, |
size_t | size | ||
) |
Sorts the SIZE bytes in BUF into nondecreasing order, using the quick-sort algorithm.
Definition at line 114 of file qsort.c.
References buf, is_sorted(), partition(), pick_pivot(), and qsort_bytes().
Referenced by main(), and qsort_bytes().
|
static |
Swaps the bytes at *A and *B.
Definition at line 37 of file qsort.c.
Referenced by partition().