#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
struct stu
{
int age;
char name[20];
};
void Exchange(char* x, char* y, size_t width)
{
while (width)
{
char temp = *x;
*x = *y;
*y = temp;
x++;
y++;
width--;
}
}
int compare(const void* e1, const void* e2)
{
//return *(int*)e1 - *(int*)e2; //排整形数据
//return *(float*)e1 - *(float*)e2; //排浮点数数据
//return *(char*)e1 - *(char*)e2; //排字符串
return strcmp(((struct stu*)e1)->name, ((struct stu*)e2)->name); //排结构体数组 - 名字排序
//return ((struct stu*)e1)->age - ((struct stu*)e2)->age; //排结构体数组 - 年龄排序
}
my_qsort(void* base, size_t num, size_t width, int (*compare)(void*, void*))
{
size_t i = 0;
for (i = 0; i < num - 1; i++)
{
size_t j = 0;
for (j = 0; j < num - 1 - i; j++)
{
if (compare((char*)base + (j * width), (char*)base + ((j + 1) * width)) > 0)
{
//交换两个数
Exchange((char*)base + (j * width), (char*)base + ((j + 1) * width), width);
}
}
}
}
int main()
{
//int arr[] = { 10,9,8,7,6,5,4,3,2,1 };
//my_qsort(arr, 10, sizeof(arr[0]), compare);
//float arr[] = { 10.0,9.0,8.0,7.0,6.0,5.0,4.0,3.0,2.0,1.0 };
//my_qsort(arr, 10, sizeof(arr[0]), compare);
//char arr[] = "nmlkjihgfedcba";
//my_qsort(arr, 14, sizeof(arr[0]), compare);
//printf("%s", arr);
struct stu arr[] = { {20,"张三"},{15,"李四"},{10,"王五"} };
my_qsort(arr, 3, sizeof(arr[0]), compare);
printf("%d %s\n%d %s\n%d %s\n", arr[0].age, arr[0].name, arr[1].age, arr[1].name, arr[2].age, arr[2].name);
//int i = 0;
//for (i = 0; i < 10; i++)
//{
// printf("%d ", arr[i]);
//}
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
用C实现一个通用版本的冒泡排序
共24个文件
tlog:6个
pdb:2个
ipch:2个
需积分: 1 0 下载量 126 浏览量
2023-11-22
08:15:21
上传
评论
收藏 1.59MB ZIP 举报
温馨提示
冒泡法排序c语言程序
资源推荐
资源详情
资源评论
收起资源包目录
custom-bubble-sort-master.zip (24个子文件)
custom-bubble-sort-master
Qsort
Qsort
Qsort.vcxproj 7KB
test.c 2KB
Qsort.vcxproj.user 165B
Qsort.vcxproj.filters 943B
Debug
test.obj 11KB
vc142.idb 43KB
Qsort.log 63B
vc142.pdb 76KB
Qsort.tlog
CL.write.1.tlog 296B
Qsort.lastbuildstate 260B
CL.command.1.tlog 670B
link.command.1.tlog 1016B
link.read.1.tlog 3KB
link.write.1.tlog 290B
CL.read.1.tlog 3KB
Qsort.ilk 471KB
Qsort.exe.recipe 264B
.vs
Qsort
v16
Browse.VC.db 1.58MB
.suo 30KB
ipch
AutoPCH
432c1bfede7a0793
TEST_1.ipch 1.94MB
10ed07f7f6345f0f
TEST.ipch 2.25MB
Qsort.sln 1KB
Debug
Qsort.exe 40KB
Qsort.pdb 1.04MB
共 24 条
- 1
资源评论
十小大
- 粉丝: 9231
- 资源: 2552
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功