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

逻辑思维--代码实现

写书法:

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

章节复习:

数组:一维,二维,多维

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

定义:数据类型[] 数组名=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. HDU2093 字符串2种不错的读入思路

    <span style="font-family: 'Times New Roman'; font-size: 12px; background-color: rgb(255, 255 ...

  2. 自定义的GitLab 头像无法正常显示以及URL总是指向localhost

    解决指向localhost的问题: 编辑gitlab的配置vi /etc/gitlab/gitlab.rb,修改external_url 参数值 [Mesogene@localhost ~]$ sud ...

  3. 网页嵌入WMP代码(转)

    网页嵌入WMP代码 播放器代码解释,装了9.0或9.0以上的播放器才能正常使用: OBJECT id="WMP" height="176" width=&quo ...

  4. A - 487-3279

    Description Businesses like to have memorable telephone numbers. One way to make a telephone number ...

  5. centos 7 epel地址

    wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

  6. AngularJS 之Services讲解

    Angular带来了很多类型的services.每个都会它自己不同的使用场景.我们将在本节来阐述. 首先我们必须记在心里的是所有的services都是singleton(单例)的,这也是我们所希望得到 ...

  7. Max Sum(hd P1003)

    Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum ...

  8. Can someone explain Webpack's CommonsChunkPlugin

    I get the general gist that the CommonsChunkPlugin looks at all the entry points, checks to see if t ...

  9. Sql Server专题一:索引(上)

    写在前面的废话:索引问题已经是老生常谈的问题,虽然被经常说起,但作为我来说,至今没有用过索引(很可怕吧),我作为MS-BI实施工程师居然没用过索引,说话自然没底气.之前对索引的了解停留在“知道”的地步 ...

  10. 强化一下,QDialog有专门的exec函数和finished信号,QWidget都没有

    http://blog.csdn.net/dbzhang800/article/details/6300519