使用qsort函数进行快速排序以及链表的冒泡排序
- qsort函数快速排序
- qsort快速排序二维数组
- qsort快速排序结构体数组
- qsort快速排序指针数组(malloc申请空间的二维数组)
- 链表内容的冒泡排序
文章参考传送门:
参考博客1
参考博客2
qsort函数快速排序
qsort快速排序二维数组
对应回调函数如下
复制代码
1
2
3
4
5
6int cmp_int(const void* a, const void* b) { return ((int*)a)[2] - ((int*)b)[2]; //从小到大排序 return ((int*)b)[2] - ((int*)a)[2]; //从大到小排序 }
[2]是排序依据,按照第几个数据进行排序
qsort使用实例
复制代码
1
2qsort(name, number, sizeof(name[0]), cmp_int);
qsort快速排序结构体数组
回调函数如下:
复制代码
1
2
3
4
5int cmp_struct(const void* a, const void* b) { return ((DATA*)a)->item3 - ((DATA*)b)->item3; }
qsort快速排序指针数组(malloc申请空间的二维数组)
回调函数如下:
复制代码
1
2
3
4
5int cmp_malloc(const void* a, const void* b) { return (*(int**)a)[2] - (*(int**)b)[2]; }
链表内容的冒泡排序
可套用代码如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27//此处是对链表元素使用冒泡排序 Node* node1, * node2; //定义两个排序节点 Node temp; int i, j; for (i = 0; i < number - 1; i++) { node1 = TYPE->head->next; //从头开始冒泡 node2 = node1->next; for (j = 0; j < number - 1; j++) //单个泡下沉的过程 { if (node1->n3 >= node2->n3) //排序依据 { temp.n3 = node1->n3; node1->n3 = node2->n3; node2->n3 = temp.n3; //内容的置换 } node1 = node2; node2 = node1->next; //向后推进 } }
链表的冒泡排序和正常的int数组冒泡排序没什么不同,唯一难理解的点可能就是链表的地址处理!以及其他排序方法用到链表上面,都需要搞清楚链表到底是什么!
最后
以上就是受伤皮带最近收集整理的关于使用qsort函数进行快速排序以及链表的冒泡排序qsort函数快速排序链表内容的冒泡排序的全部内容,更多相关使用qsort函数进行快速排序以及链表内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复