自己實現qsort函式(quick sort)

2021-09-24 09:17:05 字數 883 閱讀 7798

通過msdn查詢,可得

qsort函式是有四個引數的分別為:

1: void *base 引數是對接受需要排序的陣列

2: size_t num 引數是接受陣列的總長度

3: size_t width 引數是接受陣列乙個單位的長度

4: int(_cdcel *compare)(const void *elem1,const void *elem2) 比較相鄰兩個元素的大小,該引數需要程式設計師自己設計;

void show(int *arr, int len)

printf("\n");

}void swap(const void *elem1, const void *elem2,int size)

}void myqsort(void *base, int len,

int size,

int( *int_cmp)(const void *elem1, const void *elem2))

} }}int int_cmp(const void *elem1, const void *elem2)

int main()

; show(arr, sizeof(arr) / sizeof(arr[0]));

myqsort(arr, sizeof(arr) / sizeof(arr[0]), sizeof(int), int_cmp);

show(arr, sizeof(arr) / sizeof(arr[0]));

system("pause");

return 0;

}

qsort函式實現

首先在實現my qsort函式前,先了解下編譯器函式庫對於qsort的描述.qsort函式 編譯器函式庫自帶的快速排序函式。功能 使用快速排序演算法思想進行排序 標頭檔案 stdlib.h 函式用法 qsort void size t num,size t size,int const void c...

模擬實現qsort函式

上節提到qsort函式的原型,今天我們就來模擬下它 首先是qsort函式的主體部分,主要還是迴圈,判斷比較,較困難的是型別的轉化,我們希望可以知道每次訪問的位元組數,即將初始位址轉化為字元指標,即每次解引用可訪問乙個位元組,而再加上j width就可以知道訪問第幾個元素,這樣就可以方便的比較了。vo...

模擬實現qsort函式

模擬實現qsort函式 qsort 的函式原型是 void qsort void base,size t num,size t width,int cdecl compare const void const void qsort 即,quicksort 主要根據你給的比較條件給乙個快速排序,主要是...