1.冒泡排序:

  what:将元素进行两两比较,大的(小的)向后排。

  when:数组中有多个元素,需要进行比较排序比较的时候使用。

  how:N个数字来排队,两两比较小靠前。(升序)

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

    内层循环:N-1-i(控制每轮比较的的次数,i代表外层循环变量)

  for example:

        

int num[5];
int i,k,j,temp;
for(i=0;i<5;i++)
{
printf("请输入5个元素\n");
scanf("%d",&num[i]);
}
for(i=0;i<4;i++)
{
  for(k=0;k<4-i;k++)
  {
    if(num[k]>num[k+1])//注意不能是num[k]>num[k-1]
    {
    temp=num[k];
    num[k]=num[k+1];
    num[k+1]=temp;
    }
  } 
}
for(j=0;j<5;j++)
{
printf("%d\n",num[j]);
}

  

2.二分法查找(折半查找):前提查找的元素必须有序。

  what:将待查找的元素与数组中的中间位置元素进行比较。

  when:要查找数组中某一元素。

  how:将待查找的数字与数组中的中间位置进行比较。
     如果比中间位置的元素值小,去左边查找(更改结束位置)。
     如果比中间位置的元素值大,去右边查找(更改起始位置)。

  for example:

int nums[9]={1,2,3,4,5,6,7,8,9};
int i=0,left,right,mid,search;
left=0;
right=8;
printf("请输入要查找的值\n");
scanf("%d",&search);
while(left<=right)  //当为偶数序列时会出现相等的情况
{

  i++;
  mid=(left+right)/2;
  if(search<nums[mid])
  {
    right=mid-1;
  }
  else if(search>nums[mid])
  {
    left=mid+1;
  }
  else
  {
    break;
  }

}

printf("查找这个%d一共用了%d次\n",search,i);

C语言:“冒泡排序”与“二分法”的更多相关文章

  1. js 排序:sort()方法、冒泡排序、二分法排序。

    js中的排序,这里介绍三种,sort()方法.冒泡排序.二分法排序. 1.sort方法 写法:  数组.sort(); 返回排好序的数组,如果数组里是数字,则由小到大,如果是字符串,就按照第一个字符的 ...

  2. js冒泡排序与二分法查找

    冒泡排序 var attr=[1,5,7,6,3,9,2,8,4]; var zj=0; //控制比较轮数 for(var i=0;i<attr.length-1;i++) { //控制每轮的比 ...

  3. c语言冒泡排序

    在C语言中,常用的排序算法有:冒泡排序.快速排序.插入排序.选择排序.希尔排序.堆排序以及归并排序等等. 冒泡排序基本概念:  依次比较相邻的两个数,将小数放在前面,大数放在后面. #include ...

  4. c语言冒泡排序,指针,数组

    冒泡排序算法的运作如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复 ...

  5. C语言的算法--------二分法查找

    int find(int n,int a[],int l){int low=0;int high=l-1;int middle=0;while(low<high){middle=(low+hig ...

  6. Java冒泡排序与二分法查找的代码随笔

    package javafirst; import java.util.Arrays; class MaoPao{ //升序排列 /** * @param arr 要排序的数组 * @return i ...

  7. 史上最详细的C语言冒泡排序算法

    未经同意,请勿转载. void bubbing(){ ] = {,,,,,,,,,};//define init the array //going to the exinternal loop,st ...

  8. c语言冒泡排序算法

    案例一: #include <stdio.h> int main(void){ int a[5]; printf("please input sort number:" ...

  9. C语言冒泡排序法分析及代码实现

    冒泡排序法: 所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法.具体方法是,相邻数值两两交换.从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换( ...

随机推荐

  1. 51Nod 1534 棋盘阻挡博弈

    很简单的可以知道 如果P在V的右上角 必输 如果P在V的左下角 必赢 接下里还剩下左上角和右下角两种情况 两种情况其实相同 P是挡不住V通过对角线方向向下/左的移动的 即两者不会相互影响 所以我们只要 ...

  2. Summer training #7

    B:读懂题意模拟 #include <bits/stdc++.h> #include <cstring> #include <iostream> #include ...

  3. 浅析jsp

    什么是jsp?jsp的全称是 java Server Page ,也就是俗称的动态网页,什么是静态网页和动态网页呢,在我理解看来,HTML等网页就属于静态网页,jsp等网页属于动态网页,为什么这么说呢 ...

  4. QT字符串QString

    字符串转数值 --------------------------------------------------------------------------------------------- ...

  5. BZOJ2118 墨墨的等式[同余类最短路]

    声明:关于这题的$O(mn)$尚且未深入理解,虽然之前有跟这位神仙聊过做法但并没太懂.. $O(mn\log m)$同余最短路做法: 首先不妨抽出最小的$a_i=m$,那么剩余的$a$如果可以表示出$ ...

  6. java程序连接Liunx服务器并且执行命令

    JSch 介绍 JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等.你可以将它的功能集成到你自己的 程序中.同时该项目也提供一个J2M ...

  7. 1 request模块

    官方文档真是好用的一匹 官方文档:https://2.python-requests.org//zh_CN/latest/index.html 参考blog:https://www.cnblogs.c ...

  8. 快速拿下CSS盒子模型

    下面的图片就是Chrome浏览器审查元素里的盒子情况展示,我们可以看到一个容器由4个颜色代表的内容组成:内容(content).填充(padding).边框(border).边界(margin),在这 ...

  9. HDU 5727 Necklace ( 2016多校、二分图匹配 )

    题目链接 题意 : 给出 2*N 颗珠子.有 N 颗是阴的.有 N 颗是阳的.现在要把阴阳珠子串成一个环状的项链.而且要求珠子的放置方式必须的阴阳相间的.然后给出你 M 个限制关系.格式为 ( A.B ...

  10. 2019 7.6 T2 虫洞

    虫洞(conch) [题目描述] HZY 现在在数轴原点处,她想跑到 2000001 这个点上.听说各路 神犇暑假里都在健♂身,所有 HZY 也想不要只是简单地跑步,于是她 决定在这条数轴上造虫洞,具 ...