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

逻辑思维--代码实现

写书法:

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

章节复习:

数组:一维,二维,多维

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

定义:数据类型[] 数组名=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. 【贪心】【Uva11292】 勇者斗恶龙

    直接用白书上的翻译吧 例题1  勇者斗恶龙(The Dragon of Loowater, UVa 11292) 你的王国里有一条n个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头).村里有m个骑士 ...

  2. if分支的四种形式

    分支:——四种if一.if(条件表达式){} 二.if(条件表达式){}else{} 三.if(条件表达式){}else if(条件表达式){}else if(条件表达式){}....else{} 四 ...

  3. Deppon接口开发

    一.1)  支持的传输协议  http ,暂时只支持HTTP协议进行通信. (2) 支持的数据传输格式  Json  ,所有接口暂只支持json消息格式. (3) 编码格式:UTF-8   交互编码格 ...

  4. js打印数据类型

    console.log({}.toString.call(123))--- [object Number].... [object String] [object Undefined] [object ...

  5. PHP学习笔记四【类型运算】

    <?php //类型运算符 class Dog { } class Cat { } $a=new Cat; var_dump($a instanceof Cat); //在实际开发中,判断某一个 ...

  6. asp.net遍历页面中所有TextBox,并赋值为String.Empty的方法

    本文介绍下,如何用.net遍历页面中的所有TextBox控件,并赋值为string.empty的方法,通过实例学习具体操作.有需要的朋友可以参考下.   一.遍历窗体控件 1,普通页面遍历TextBo ...

  7. C - The Hardest Problem Ever

    Description Julius Caesar lived in a time of danger and intrigue. The hardest situation Caesar ever ...

  8. const参数,const返回值与const函数

    在C++程序中,经常用const 来限制对一个对象的操作,例如,将一个变量定义为const 的: const  int  n=3; 则这个变量的值不能被修改,即不能对变量赋值. const 这个关键字 ...

  9. linux常用命令--diff

    diff是Unix系统的一个很重要的工具程序. 它用来比较两个文本文件的差异,是代码版本管理的基石之一.你在命令行下,输入: $ diff <变动前的文件> <变动后的文件> ...

  10. YouComplete:vim自动补全插件

    在github上下载插件,按照README.md安装 1,ubuntu安装 vim插件管理:vundle插件安装同样按照 README.md 操作 2,user guide General Usage ...