人类思维--计算机逻辑思维

逻辑思维--代码实现

写书法:

描红——临摹——碑贴——自成一体——草

章节复习:

数组:一维,二维,多维

一维:豆角。连续,同一类型。

定义:数据类型[] 数组名=new 数据类型[长度]{.,.,.,.};

赋值:数组名[下标] = 值

取值:数组名[下标]

灵活运用:与for循环的结合应用。

1.求最大值,最小值。

2.求总和,平均。

3.随机(生成下标)抽值。

新课:

数组的应用:

(一).冒泡排序。

1.冒泡排序是用双层循环解决。外层循环的是趟数,里层循环的是次数。

2.趟数=n-1;次数=n-趟数。

3.里层循环使用if比较相临的两个数的大小,进行数值交换。

作业:

1.先把冒泡排序写一遍。

2.使用冒泡排序,做青歌赛的打分程序。要求去掉两个最高,两个最低分,求平均得分。

代码。

(二).折半查找。

前提:数组必须是有序的。

思路:用两个变量分别代表上限(top)和下限(bottom)的下标,再用一个变量代表中间(mid)的下标。

1.求中间下标:mid = (top+bottom)/2

2.上限下标下移:top = mid+1. 假设数组是升序排列。

3.下限下标上移:bottom = mid-1;

4.循环条件是:bottom>=top

        static void Main(string[] args)

        {

            int[] a = new int[] { 3, 5, 7, 9, 11, 13, 14, 18 };

            Console.Write("请输入要找的数:");

            int find = Convert.ToInt32(Console.ReadLine());

            int top, bottom, mid;  //上限下标,下限下标,中间下标

            top = 0;

            bottom = a.Length - 1;

            while(bottom>=top)  //只要下限下标还在上限下标的下面,就循环,否则没找到就结束。

            {

                //算中间下标

                mid = (top + bottom) / 2;

                //取中间的值

                int n = a[mid];

                if(n < find)

                {

                    top = mid + 1;      //调整上限的下标

                }

                else if(n>find)

                {

                    bottom = mid - 1;// 调整下限的下标。

                }

                else

                {

                    Console.WriteLine("找到了,在第" + mid + "个元素上");

                    break;

                }

            }

        }

二维数组:

表格的模型。

定义:

数据类型[,] 数组名 = new 数组类型[维度长度,维度长度];

int[,] a = new int[3,4];

int[,] a = new int[3, 4] { { 1, 2, 3, 4 },{ 5, 6, 7, 8 }, { 9, 0, 9, 8 } };

赋值:

数组名[下标,下标] = 值;

a[0,0] = 5;

a[2,3] = 10;

取值:

数组名[下标,下标];

应用:

例:这是冒泡排序

static void ccc(string[] args)

        {

int[] a = new int[8] { 9, 12, 7, 5, 15, 2, 1, 8 };

//冒泡排序。

for(int i=1;i<=a.Length-1;i++) //趟数

            {

for (int j = 1; j <= a.Length - i; j++)//次数

                {

if(a[j-1] > a[j])

                    {

int t = a[j - 1];

                        a[j - 1] = a[j];

                        a[j] = t;

                    }

                }

            }

//显示

for(int k=0;k<a.Length;k++)

            {

Console.WriteLine(a[k]);

            }

        }

例:折半查找

static void Man(string[] args)

        {

int[] a = new int[] { 3, 5, 7, 9, 11, 13, 14, 18 };

Console.Write("请输入要找的数:");

int find = Convert.ToInt32(Console.ReadLine());

int top, bottom, mid;  //上限下标,下限下标,中间下标

            top = 0;

            bottom = a.Length - 1;

while(bottom>=top)  //只要下限下标还在上限下标的下面,就循环,否则没找到就结束。

            {

//算中间下标

                mid = (top + bottom) / 2;

//取中间的值

int n = a[mid];

if(n < find)

                {

                    top = mid + 1;      //调整上限的下标

                }

else if(n>find)

                {

                    bottom = mid - 1;// 调整下限的下标。

                }

else

                {

Console.WriteLine("找到了,在第" + mid + "个元素上");

break;

                }

            }

        }

例;二维数组

static void Main (string[] args)

        {   int[,] a = new int[3, 4];

//输入

for(int i=0;i<3;i++)

            {

//自动生成学号

                a[i, 0] = i+1;

//语文成绩

Console.Write("语文:");

                a[i, 1] = Convert.ToInt32(Console.ReadLine());

//数学成绩

Console.Write("数学:");

                a[i, 2] = Convert.ToInt32(Console.ReadLine());

//计算总分

                a[i, 3] = a[i, 1] + a[i, 2];

            }

//显示

Console.WriteLine("学号\t语文\t数学\t总分");

for(int i=0;i<3;i++)

            {

for(int j=0;j<4;j++)

               {

Console.Write(a[i, j] + "\t");

               }

Console.WriteLine();

           }

        }

C#6 冒泡 折半查找 二维数组的更多相关文章

  1. [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组

    1.数组基础 1.什么是数组:           同一类型数据的集合,就是一个容器. 2.数组的好处:           可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式:  (一 ...

  2. C#学习笔记04--排序/查找/二维数组/交叉数组

    一. 冒泡排序(重点) 思路:  每次比较把较小的放在前面, 大的放到后面; 图解:下图是最坏情况下的排序 ` 冒泡排序m个元素, 就有(m-1)趟排序, 第一趟m-1次, 第二趟 m-2次....  ...

  3. [软件工程] 查找二维数组最大子数组的之和 郭莉莉&李亚文

    一. 在主函数中实现二维数组的输入. 代码主要函数maxson(),主要利用for()循环先查找出最大字数组的四角的坐标xmin,xmax,ymin,ymax来确定最大子数组, 在循环中算出之和,编写 ...

  4. 【剑指offer】二分查找二维数组

    1 2 3 4 5 6 7 8 9 3 3 1 2 3 4 5 6 7 8 9 10 3 3 12 2 3 4 5 6 7 8 9 10 例子输出: Yes No No 时间限制:1 秒 内存限制:3 ...

  5. PHP使用array_filter查找二维数组中符合字段和字段值的数据集合

    1.方法: /** * 获取符合字段和字段值的数组集合 * @param array $data 待过滤数组 * @param string $field 要查找的字段 * @param $value ...

  6. 查找二维数组list[][]中的最大的子数组的和

    之前做过最大一维数组子数组的和的题目,现在将数组扩展成二维: 代码如下: #include<iostream> #define null -858993460 using namespac ...

  7. 《剑指offer》查找二维数组内元素 c++

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. cl ...

  8. PHP 查找二维数组中是否有指定字符串的字段

    Array ( ] => Array ( [content] => 您提交了订单,请等待系统确认 :: [operator] => 客户 ) ] => Array ( [con ...

  9. Java 二维数组,排序、切换顺序,查表法二进制十进制,这班查找、排序(冒泡、选择)、遍历,获取最大小值(4)

    Java 二维数组,排序.切换顺序,查表法二进制十进制,折半查找.排序(冒泡.选择).遍历,获取最大小值(4)

随机推荐

  1. kvm虚拟化之克隆篇

    注意:在克隆虚拟机的时候,该虚拟机必须处于关闭状态. 1,查看目前有哪些子机并选择要克隆的子机,我选择关闭test,说明我要克隆的就是它了. 2,查看虚拟机是否关闭. virsh  list --al ...

  2. XMLHttpRequest Level 2 使用指南

    XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信. 最早,微软在IE 5引进了这个接口.因为它太有用,其他浏览器也模仿部署了,ajax操作因此得以诞生. ...

  3. C#实现WinForm传值实例解析

    C#实现WinForm传值的问题经常会做为公司面试的题目,那么作为学习C#以及WinForm传值,我们需要掌握哪些方法和思路呢?下面我们就向你介绍详细的思路和实现的具体步骤,希望对你有所帮助. C#实 ...

  4. Reverse Words in a String (JAVA)

    Given an input string, reverse the string word by word. For example,Given s = "the sky is blue& ...

  5. JSP总结1

    JSP: JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动 ...

  6. jquery 项目所用

    <script> $(document).ready(function(){ $.ajax({ type:'post', url :'interface.ajax.php', data:{ ...

  7. Java API设计CheckList

    API设计原则:正确.好名.易用.易学.够快.够小.但我们从来不缺原则,〜〜〜 Interface 1.The Importance of Being Use Case Oriented,一个接口应当 ...

  8. 菜鸟的jQuery源码学习笔记(一)

    整个jQuery是一个自调用的匿名函数: (function(global, factory) { if (typeof module === "object" && ...

  9. jQuery的类数组对象结构

    Query就是为了获取DOM.操作DOM而存在的 所以为了更方便这些操作,让节点与实例对象通过一个桥梁给关联起来,jQuery内部就采用了一种叫"类数组对象"的方式作为存储结构,所 ...

  10. python基础教程第6章——抽象

    1.函数的定义,使用def(或“函数定义”)语句: def hello(name): return ‘Hello.'+name+'!' def fibs(num): result=[0,1] for ...