你是真的“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语言知识实现它们。== 如果我写的有什么的不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘

相关文章
|
2月前
|
搜索推荐 算法 Go
Go语言数组排序(冒泡排序法)—— 用最直观的方式掌握排序算法
本案例介绍使用冒泡排序对整数数组进行升序排序的实现方法,涵盖输入处理、错误检查与排序逻辑。通过代码演示和算法解析,帮助理解排序原理及Go语言切片操作,为学习更复杂排序算法打下基础。
|
2月前
|
搜索推荐
冒泡排序与其它排序算法比较
本内容比较了冒泡排序、选择排序和插入排序的特性。三者时间复杂度均为O(n²),但交换次数和稳定性不同。冒泡排序稳定,交换次数多,可优化至O(n);选择排序不稳定,交换次数少;插入排序交换次数最少,且二者均为稳定排序。对于有序数组,冒泡和插入可优化提升效率。
43 0
|
10月前
|
搜索推荐 C语言
【排序算法】快速排序升级版--三路快排详解 + 实现(c语言)
本文介绍了快速排序的升级版——三路快排。传统快速排序在处理大量相同元素时效率较低,而三路快排通过将数组分为三部分(小于、等于、大于基准值)来优化这一问题。文章详细讲解了三路快排的实现步骤,并提供了完整的代码示例。
305 4
|
10月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
237 67
|
10月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
245 1
|
10月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(下)(c语言实现)(附源码)
本文继续学习并实现了八大排序算法中的后四种:堆排序、快速排序、归并排序和计数排序。详细介绍了每种排序算法的原理、步骤和代码实现,并通过测试数据展示了它们的性能表现。堆排序利用堆的特性进行排序,快速排序通过递归和多种划分方法实现高效排序,归并排序通过分治法将问题分解后再合并,计数排序则通过统计每个元素的出现次数实现非比较排序。最后,文章还对比了这些排序算法在处理一百万个整形数据时的运行时间,帮助读者了解不同算法的优劣。
345 7
|
10月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(上)(c语言实现)(附源码)
本文介绍了四种常见的排序算法:冒泡排序、选择排序、插入排序和希尔排序。通过具体的代码实现和测试数据,详细解释了每种算法的工作原理和性能特点。冒泡排序通过不断交换相邻元素来排序,选择排序通过选择最小元素进行交换,插入排序通过逐步插入元素到已排序部分,而希尔排序则是插入排序的改进版,通过预排序使数据更接近有序,从而提高效率。文章最后总结了这四种算法的空间和时间复杂度,以及它们的稳定性。
389 8
|
11月前
|
搜索推荐
冒泡排序算法
【10月更文挑战第19天】冒泡排序是一种基础的排序算法,虽然在实际应用中可能不是最优的选择,但对于理解排序算法的基本原理和过程具有重要意义。
|
11月前
|
算法 搜索推荐 C语言
【C语言】冒泡排序+优化版
【C语言】冒泡排序+优化版
105 1
|
11月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
321 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序

热门文章

最新文章