概述
使用qsort函数进行快速排序以及链表的冒泡排序
- qsort函数快速排序
- qsort快速排序二维数组
- qsort快速排序结构体数组
- qsort快速排序指针数组(malloc申请空间的二维数组)
- 链表内容的冒泡排序
文章参考传送门:
参考博客1
参考博客2
qsort函数快速排序
qsort快速排序二维数组
对应回调函数如下
int cmp_int(const void* a, const void* b)
{
return ((int*)a)[2] - ((int*)b)[2]; //从小到大排序
return ((int*)b)[2] - ((int*)a)[2]; //从大到小排序
}
[2]是排序依据,按照第几个数据进行排序
qsort使用实例
qsort(name, number, sizeof(name[0]), cmp_int);
qsort快速排序结构体数组
回调函数如下:
int cmp_struct(const void* a, const void* b)
{
return ((DATA*)a)->item3 - ((DATA*)b)->item3;
}
qsort快速排序指针数组(malloc申请空间的二维数组)
回调函数如下:
int cmp_malloc(const void* a, const void* b)
{
return (*(int**)a)[2] - (*(int**)b)[2];
}
链表内容的冒泡排序
可套用代码如下:
//此处是对链表元素使用冒泡排序
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函数进行快速排序以及链表的冒泡排序qsort函数快速排序链表内容的冒泡排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复