(Ⅰ)C语言用指针实现冒泡排序、strcat、strcmp、strstr库函数

使用指针冒泡排序


为了同数组冒泡排序进行区别,所以我们要用全指针实现冒泡排序

在一般的冒泡排序中

  • 第一层for循环
    规定要进行的数,循环条件为t<数组长度-1
  • 第二层循环
    从第一个元素开始进行相邻元素的交换,直到交换到上次已经交换结束的元素数,通过i<数组长度-1-t来决定每中要交换的次数

通过指针冒泡排序
如果指针也按照上述的方法来进行交换,那么会额外设置变量,繁琐之余并不能体现指针的实现冒泡排序的特点,所以我们只须通过指针来限定循环的趟数和每趟交换的次数

  • 第一层for循环
    得到数组的首元素地址arr以后,创建指针代表每次需要比较的最后一个变量end=arr+数组长度-1,用循环条件 arr<endend--来决定趟数。
  • 第二层for循环
    因为每趟开始都需要从第一个元素开始判断,所以定义一个cur指针变量,循环条件cur<end来决定每交换的次数
代码实现
void bubble_sort(int *arr, int sz)
{
    int *str = arr;//
    int *end = arr + sz - 1;//定义末端元素的位置
    int *cur = arr;//表示当前交换的元素
    for (str = arr; str < end; end--)//确定要交换的次数,通过end的缩小
    {
        for (cur = str; cur < end; cur++)//每次循环重新开始的时候,在初始化部分将cur重置成str
        {
            if (*cur > *(cur + 1))
            {
                int tmp = *cur;
                *cur = 
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值