冒泡排序算法

将相邻的元素进行两两比较,大的向后”冒”, 小的向前”赶”。

口诀: N个数字来排队,两两比较小靠前

外层循环N-1(控制需要比较的轮数)。

内层循环N-1-i(控制每轮需要比较的次数)。

 ];
     int i;
     //循环接收用户输入的元素
     ;i<;i++){
         printf();
         scanf("%d",&num[i]);
     }
     ;i<;i++){    //外层循环,控制排序的轮数
         int j;
         ;j<-i;j++){        //内层循环,控制冒牌排序每轮的次数
             ]){    //判断判断元素和后一个元素大小,如果前面元素大,则交换位置
                 int temp;
                 temp=num[j];
                 num[j]=num[j+];
                 num[j+]=temp;
             }
         }
     }
     //遍历打印数组
     ;i<;i++){
         printf("%d\t",num[i]);
     }

二分查找法(折半查找,前提是必须是有序数组)

原理:将待查找的数字与数组中的中间位置进行比较。

如果比中间位置的元素值小,去左边查找(更改结束位置)

如果比中间位置的元素值大,去右边查找(更改起始位置)

 ]={,,,,,,,,,};
     int search;
     printf("请输入你要查找的元素\n");
     scanf("%d",&search);
     int middle;//中间位置
     ;//起始下标,默认第一个元素的下标
     ;//结束下标,默认最后一个元素的下标
     ;//用了记录查询次数
     ;//标记,判断是否有该元素;
     while(left<=right){
         count++;
         middle=(left+right)/;
         if(search>num[middle]){//待查找的元素必中间位置元素的值大,到右边查找,更改起始位置
             left=middle+;
         }else if(search<num[middle]){//待查找的元素必中间位置元素的值小,到左边查找,更改结束位置
             right=middle-;
         }else{
             printf("你要查找的要素%d下标为%d",search,middle);
             flag=;
             break;
         }
     }
     ){
         printf("你一共用了%d次查找到该元素\n",count);
     }else{
         printf("你要查找的元素不存在\n");
     }

C语言数组之冒泡排序+折半查找法(二分查找)的更多相关文章

  1. C语言查找算法之顺序查找、二分查找(折半查找)

    C语言查找算法之顺序查找.二分查找(折半查找),最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 顺序查找 /*顺序查找 顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的 ...

  2. 自学Python3.6-算法 二分查找算法

    自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...

  3. Java中常用的查找算法——顺序查找和二分查找

    Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...

  4. Java基础知识强化60:经典查找之二分查找

    1. 二分查找       二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表. 比较 ...

  5. 【PHP数据结构】线性查找与二分查找

    欢迎来到查找的世界,在学习完各种数据结构之后,总算走到了这一步,不知道大家有什么感想呢?反正我是边学边忘,现在让我去说说图的那几个算法还是在蒙圈的状态中.不过学习嘛,就是一步一步的来,暂时搞不懂的东西 ...

  6. 各种查找算法的选用分析(顺序查找、二分查找、二叉平衡树、B树、红黑树、B+树)

    目录 顺序查找 二分查找 二叉平衡树 B树 红黑树 B+树 参考文档 顺序查找 给你一组数,最自然的效率最低的查找算法是顺序查找--从头到尾挨个挨个遍历查找,它的时间复杂度为O(n). 二分查找 而另 ...

  7. List<T>线性查找和二分查找BinarySearch效率分析

    今天因为要用到List的查找功能,所以写了一段测试代码,测试线性查找和二分查找的性能差距,以决定选择哪种查找方式. 线性查找:Contains,Find,IndexOf都是线性查找. 二分查找:Bin ...

  8. Java顺序查找、二分查找

    Java顺序查找.二分查找   查找算法中顺序查找算是最简单的了,无论是有序的还是无序的都可以,只需要一个个对比即可,但其实效率很低. 顺序查找 动图演示 详细代码 // 顺序查找 public st ...

  9. 数组查找算法的C语言 实现-----线性查找和二分查找

    线性查找  Linear Search 用户输入学生学号的成绩 二分查找  Binary Search 要求数据表是已经排好序的 程序存在小的瑕疵

随机推荐

  1. PAT 1047

    1049. Counting Ones (30) The task is simple: given any positive integer N, you are supposed to count ...

  2. CTR预估中的贝叶斯平滑方法(二)参数估计和代码实现

    1. 前言 前面博客介绍了CTR预估中的贝叶斯平滑方法的原理http://www.cnblogs.com/bentuwuying/p/6389222.html. 这篇博客主要是介绍如何对贝叶斯平滑的参 ...

  3. 使用JSONObject生成和解析json

    1. json数据类型 类型 描述 Number 数字型 String 字符串型 Boolean 布尔型 Array 数组,以"[]"括起来 Object 对象,类似于C中的结构体 ...

  4. linux c socket笔记 -服务端

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types. ...

  5. Java 工具类—日期获得,随机数,系统命令,数据类型转换

    package tems; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; ...

  6. javaWeb项目(SSH框架+AJAX+百度地图API+Oracle数据库+MyEclipse+Tomcat)之二 基础Hibernate框架搭建篇

    我们在搭建完Struts框架之后,从前台想后端传送数据就显得非常简单了.Struts的功能不仅仅是一个拦截器,这只是它的核心功能,此外我们也可以自定义拦截器,和通过注解的方式来更加的简化代码. 接下来 ...

  7. 一个只有99行代码的JS流程框架(二)

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 张镇圳,腾讯Web前端高级工程师,对内部系统前端建设有多年经验,喜欢钻研捣鼓各种前端组件和框架. 导语 前面写 ...

  8. Block Token 原理分析

    介绍 文件权限检查由NameNode执行,而不是DataNode执行. 默认情况下,任何客户端都可以访问只有其块ID的任何块. 为了解决这个问题,Hadoop引入了块访问令牌的概念. 块访问令牌由Na ...

  9. .NET 二维码生成(ThoughtWorks.QRCode)【转发jiangys】

    .NET 二维码生成(ThoughtWorks.QRCode) 2015-06-21 22:19 by jiangys, 3790 阅读, 8 评论, 收藏, 编辑 引用ThoughtWorks.QR ...

  10. 原生js实现数据双向绑定

    最近接触了vue,在谈到vue等等的mvvm框架之前,先了解什么是数据双向绑定以及如何利用原生JS实现数据双向绑定 单向数据绑定 指先把模板写好,然后把模板和数据(数据可能来自后台)整合到一起形成HT ...