STM32 qsort排序
阿新 • • 發佈:2018-12-11
#include <stdio.h> #include <stdlib.h> #define BUF_SIZE 10 #define RAND_NUM_MAX 100 unsigned char buf[BUF_SIZE] = {0}; //===串列埠列印================================= int fputc(int ch, FILE * stream) { HAL_UART_Transmit(&huart1, (unsigned char *)&ch, 1, HAL_MAX_DELAY); return ch; } //===回撥比較函式,注意陣列型別和回撥匹配=========== int compare_char(const void *a, const void *b) { return (*(char *)a) - (*(char *)b); } int compare_int(const void *a, const void *b) { return (*(int *)a) - (*(int *)b); } //===產生隨機數排序============================= void rand_num(void) { unsigned int i; for(i = 0; i < BUF_SIZE; i++) { srand(HAL_GetTick()); //設定隨機數種子 HAL_Delay(1); //等待改變種子 buf[i] = rand()%(RAND_NUM_MAX + 1); printf("%d ", buf[i]); } //---排序---------------------------- qsort(buf, BUF_SIZE, sizeof(buf[0]), compare_char); printf("\r\n"); for(i = 0; i < BUF_SIZE; i++) printf("%d ", buf[i]); }