首先是对qsort函数的使用方法的理解和总结
////使用qsort函数排序各种类型的数据
////qsort是一种编译器自带的排序函数
////qsort需要四个参数:
////1.待排序数组的地址(const void* x)
////2.数组大小(size_t xx)
////3.数组中每个元素的大小(size_t xxx)
////4。一个确定排列顺序的函数的指针
////(int (*xxxx)(const void* ,const void*))
//
////xxxx函数是这样的:
//int xxxx (const void* a,const void* b)
//{
//return (要进行比较的数据的数据类型*)a - (要进行比较的数据的数据类型*)b;//排列顺序为升序
//return (要进行比较的数据的数据类型*)b - (要进行比较的数据的数据类型*)a;//排列顺序为降序
////两种选一种就好
//}
//
//int main()
//{
// //数组
// int arr[] = {1,3,5,6,2,5,6};
//qsort(arr, sizeof(arr)/sizeof(arr[0]),sizeof(int),xxxx);
////xxxx函数返回内容:return *(int*)a - *(int*)b;
//
// int arr2[5][5];
// qsort(arr2,5,sizeof(int)*2,xxxx);
////xxxx函数返回内容:return ((int*)a)[0] - ((int*)b)[0];
// //字符串
// qsort(a,lenth,sizeof(a[0]),xxxx);
////xxxx返回:return strcmp(*(char*)a,*(char*)b)
// //结构体
// struct node
// {
// int a;
// int b;
// }n[10];
// qsort(n,10,sizeof(n[0]),xxxx);
////xxxx返回:return (*(node*)n).a-(*(node*)n).b
//
//return 0;
//}
冒泡排序(以int类型为例子)
void m_qsort(int* dest, int leng)
{
int i = 0;
int j = 0;
int num = 0;
assert(dest);
assert(leng);
for(i=0; i<leng-1; i++)
{
for(j=i+1; j<leng; j++)
{
if(dest[i]>dest[j])
{
num = dest[i];
dest[i] = dest[j];
dest[j] = num;
}
}
}
}
int main()
{
int i = 0;
int arr[11] = {2,3,4,5,4,6,3,4,6,3,4};
m_qsort(arr, 11);
for(i=0; i<11; i++)
{
printf("%d", arr[i]);
}
system("pause");
return 0;
}