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. Linux之top 监视系统任务的工具

    top 监视系统任务的工具: 和ps 相比,top是动态监视系统任务的工具,top 输出的结果是连续的:  top 命令用法及参数: top 调用方法: top 选择参数 参数: -b  以批量模式运 ...

  2. 精选30道Java多线程面试题

    1.线程和进程的区别 进程是应用程序的执行实例.比如说,当你双击的Microsoft Word的图标,你就开始运行的Word的进程.线程是执行进程中的路径.另外,一个过程可以包含多个线程.启动Word ...

  3. 第二天Beta冲刺

    这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 <做个一亿的小项目> 这个作业的目标 完成第二天Beta冲刺 作业正文 .. ...

  4. ogg12c 配置

    环境:source 192.168.2.182 : 系统:Windows Server 2012 oracle: Release 12.1.0.2.0 ogg: 12.2.0.2.3 target 1 ...

  5. 数据管理必看!Kendo UI for jQuery过滤器状态保持

    Kendo UI for jQuery最新试用版下载 Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support f ...

  6. php类知识---try catch

    <?php try { echo "比赛开始"."\n"; ); } catch (Exception $e ) { echo "获取错误信息: ...

  7. 【Winfrom-TreeView】 跟随系统改变Style

    C#: public class NativeTreeView : System.Windows.Forms.TreeView { [DllImport("uxtheme.dll" ...

  8. nginx负载均衡 页面缓存

    nginx的upstream目前支持4种方式的分配 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight 指定轮询几率,weight ...

  9. 学习shell(二)

    条件分支:  (条件表达式的中括号里面 空格不可以省略) = ] then echo '2 = 2'; else echo '2 != 2'; fi # 上面的代码不使用缩进, 并不会出错, 但不应该 ...

  10. excel 数据读写 Aspose.Cells.dll

    private void Form1_Load(object sender, EventArgs e) { writeExcel(); Workbook workbook = new Workbook ...