[C语言] 使用回调函数实现冒泡排序

来源:本站
导读:目前正在解读《[C语言] 使用回调函数实现冒泡排序》的相关信息,《[C语言] 使用回调函数实现冒泡排序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《[C语言] 使用回调函数实现冒泡排序》的详细说明。
简介:本文利用C语言使用回调函数实现冒泡排序,感性趣的朋友可以参考下。

实现功能:既能排序整型数,也可以排序字符串

代码如下:

#include <stdio.h>#include <string.h>int int_cmp(const void *p1, const void *p2){    if (*(int *)p1 > *(int *)p2)    {        return 1;    }    else if (*(int *)p1 == *(int *)p2)    {        return 0;    }    else    {        return -1;    }}void swap(void *p1, void *p2, int size){    int i = 0;    for (i = 0; i < size; i++)    {        char tmp = *((char *)p1 + i);        *((char *)p1 + i) = *((char *)p2 + i);        *((char *)p2 + i) = tmp;    }}void bubble(void *base, int count, int size, int(*cmp)(const void *, const void *)){    int i = 0;    int j = 0;    for (i = 0; i < count - 1; i++)    {        for (j = 0; j < count - i - 1; j++)        {            if (cmp((char *)base +size*j,(char *)base+size*(j+1))>0)            {                swap((char *)base + size*j, (char *)base + size*(j + 1), size);            }        }    }}int str_cmp(const void *p1, const void *p2){    return strcmp((char *)(*(int *)p1), (char *)(*(int *)p2));}int main(){    //int arr[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };    char *arr[] = { "dddd", "bbbb", "cccc", "aaaa" };    int i = 0;    bubble(arr, sizeof(arr) / sizeof(arr[0]), sizeof(char *), str_cmp);    for (i = 0; i < 4; i++)    {        printf("%sn", arr[i]);    }    printf("n");    return 0;

}

提醒:《[C语言] 使用回调函数实现冒泡排序》最后刷新时间 2024-03-14 00:59:15,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《[C语言] 使用回调函数实现冒泡排序》该内容的真实性请自行鉴别。