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内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?