你是真的“C”——C语言实现冒泡排序+折半查找(二分查找算法)

简介: C语言实现冒泡排序和折半查找

C语言实现冒泡排序+折半查找(二分查找)算法 😎

哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘

    ==冒泡排序和折半查找排序是我们比较常用到的、简单的排序函数==。接下来,我将用最近学到的C语言知识,将这两种排序算法用代码形式给大家具体分析一下,也希望大家能够通过本文的阅读学习,下来后可以闭着眼睛把它们用代码实现出来!

  • 冒泡排序实现(降序实现):🙌

    冒泡排序,其每一趟都是从==数组的第一个元素开始==,和数组的每一个元素进行一一对比,如果后面的元素比前面的元素大就交换,一趟比较完成后,就有一个==这一趟的最小数放到最后的位置,这个数就可确定下来,不用参与下一趟的排序==。当执行n趟完毕后,所有趟数中数组的最小值依次放到该趟要比较的数组元素的最后面,最后数组便降序排好了。其中控制数组排序的趟数和每一趟要进行比较的次数则需要==循环==精准把控啦。废话不多说,请看代码!😍

//冒泡排序算法实现:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int arr[10] = { 2,3,1,6,7,8,9,10,4,5 };
    int len = sizeof(arr) / sizeof(arr[0]);//这里求得数组元素的个数
    for (int i = 0; i < len; i++)//控制的是比较的趟数
    {
        for (int j = 0; j < len - i - 1; j++)//控制的是每一趟比较的次数
        {
            int temp = 0;
            if (arr[j] < arr[j + 1])//实现的是降序排序
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }

    for (int i = 0; i < len; i++)
    {
        printf("%d ", arr[i]);
    }

    return 0;
}
  • 折半查找排序的实现:🙌

   折半查找算法的应用场景是在==有序数组中==查找某一个元素的位置。每一趟比较都是用该 ==数组中间元素(arr[mid])== 与所要查找的元素进行数值大小,然后就能够砍掉一半无需比较的元素。==每一趟都折半==,最终找到我们所查找元素的位置。具体需要注意的地方,我已在注释在代码中。废话不多说,请看代码!😍

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main()
{
    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//有序数组
    int len = sizeof(arr) / sizeof(arr[0]);
    int left = 0;
    int right = len - 1;
    int mid = 0;
    int k = 0;
    scanf("%d", &k);

    while (left <= right)
    {
        //mid = (left + right) /2;     这样写不好因为,mid只要是一个数据类型的数值,其就有一个最大数上限
        //如果要让他的上限更大,尽可能规避这个问题。
        mid = (right - left) / 2 + left;
        if (arr[mid] > k)
        {
            right = mid - 1;

        }
        else if (arr[mid] < k)
        {
            left = mid + 1;

        }
        else
        {
            printf("找到了,该数的下标为:%d\n", mid);
            break;
        }
    }

    return 0;
}

总结撒花🙌

   ==本篇文章旨在带领大家学习冒泡排序和折半查找算法,并用C语言知识实现它们。== 如果我写的有什么的不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘

相关文章
|
1月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
49 1
|
1月前
|
算法
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
|
1月前
|
存储 算法 Java
深入算法基础二分查找数组
文章深入学习了二分查找算法的基础,通过实战例子详细解释了算法的逻辑流程,强调了确定合法搜索边界的重要性,并提供了Java语言的代码实现。
深入算法基础二分查找数组
|
1月前
|
搜索推荐 Java
经典排序算法---冒泡排序
这篇文章详细介绍了冒泡排序算法的基本思想、比较轮数和次数,并提供了Java语言实现冒泡排序的代码示例,展示了如何通过相邻元素的比较和交换来达到排序的目的。
经典排序算法---冒泡排序
|
1月前
|
算法
【算法】二分查找——二分查找
【算法】二分查找——二分查找
|
2月前
|
算法
【算法】二分查找(整数二分和浮点数二分)
算法学习——二分查找(整数二分和浮点数二分)
29 0
【算法】二分查找(整数二分和浮点数二分)
|
2月前
|
搜索推荐 C语言
C语言冒泡排序(附源码和动态图)
冒泡排序是一种简单的排序算法,其基本思想是通过重复遍历待排序的数列,比较每对相邻元素的值,如果它们的顺序错误(即满足一定的排序条件,如从小到大排序时前一个元素大于后一个元素),就交换它们的位置。这个过程就像水底的气泡一样逐渐向上冒,因此得名“冒泡排序”。
|
2月前
|
算法 PHP
【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码
【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码
22 1
|
3月前
|
存储 算法 C语言
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
|
2月前
|
算法 JavaScript
JS 【算法】二分查找
JS 【算法】二分查找
25 0