C语言-排序方法(冒泡排序,选择排序,快速排序, 插入排序 )
/* 排序算法 */ #include <stdio.h> //冒泡排序 void Bubble_sort(int *p_val, int size) { int j = 0; int i = 0; for (i = 0;i < size - 1;i++) { for (j = i;j < size - 1;j++) { if (*(p_val + j) > *(p_val + j + 1)) { *(p_val + j) ^= *(p_val + j + 1); *(p_val + j + 1) ^= *(p_val + j); *(p_val + j) ^= *(p_val + j + 1); } } } } //选择排序 void choice_sort(int *p_val, int size) { int num = 0; int num1 = 0; for (num = 0;num < size - 1;num++) { for (num1 = num;num1 < size - 1;num1++) { if(*(p_val + num) > *(p_val + num1 + 1)) { *(p_val + num) ^= *(p_val + num1 + 1); *(p_val + num1 + 1) ^= *(p_val + num); *(p_val + num) ^= *(p_val + num1 + 1); } } } } //快速排序 void quick_sort(int* p_val, int size) { int base = *p_val; int* p_head = p_val; int* p_tail = p_val + size - 1; if (size <= 1) { return; } while (p_head < p_tail) { if (*p_head > *p_tail) { *p_head ^= *p_tail; *p_tail ^= *p_head; *p_head ^= *p_tail; p_tail--; } else { p_head++; } } quick_sort(p_val, p_head - p_val/*左边存储区的个数*/); //递归调用快速排序对右半边的数字进行排序 quick_sort(p_head + 1/*右半边最前面的存储区的地址*/, size - (p_head - p_val) - 1); } //插入排序 void insert_sort(int *p_val, int size) { int num = 0; int num_1 = 0; for (num = 1;num < size;num++) { for (num_1 = num;num_1 > 0;num_1--) { if (*(p_val + num_1) < *(p_val + num_1 - 1)) { *(p_val + num_1) ^= *(p_val + num_1 - 1); *(p_val + num_1 - 1) ^= *(p_val + num_1); *(p_val + num_1) ^= *(p_val + num_1 - 1); } } } } int main(void) { int arr[5] = {7, 2, 3, 6, 5}; quick_sort(arr, 5); for (int i = 0;i < 5;i++) { printf("%d ", arr[i]); } printf("\n"); }
每天更新pyQt5内容