数组

作者: 钱哆哆jj | 来源:发表于2018-04-13 22:26 被阅读0次

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApp4

{

    class Program

    {

        static void Main(string[] args)

        {

二分查找 条件 数组必须排序好的数组

使用递归进行二分查找 取得数组中间索引的值判断要查找的值

如果大于往前查找反之往后查找

1,从小到大拍好序的数组2,开始索引,结束索引,要查找的值

static int BinarySearch(int[] arr, int low, int high, int key) {

            int mid = (low + high) / 2;

            if (low > high) return -1;

            else {

                if (arr[mid] == key) return mid;

                else if (arr[mid] > key)

                    return BinarySearch(arr, low, mid - 1, key);

                else  {

                    return BinarySearch(arr,mid + 1,high, key);

                }

            }

        }

static int Search(int[] arr, int key) {

            int low = 0;

            int length = arr.Length - 1;

            int mid = (low + length) / 2;

            while (length>=low)

            {

                if (arr[mid] == key) return mid;

                else if (arr[mid] > key)

                    mid -= 1;

                else mid++;

            }

            return -1;

        }

(Fibonacci)斐波拉切数列

Fibonacci数列是按以下顺序排列的数字:

1,1,2,3,5,8,13,21,34,55....规律后一个数加上前一个数等于第三个

int a = 1;

            int b = 1;

            for (int i = 2; i < 15; i++)

            {

                b = a + b;

                a = b - a;

                Console.WriteLine(a);

            }

int[] a = new int[10];

            a[0] = 1;

            a[1] = 1;

            for (int i = 2; i < a.Length; i++)

            {

                a[i] = a[i - 1] + a[i - 2];

            }

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

            {

                Console.WriteLine(a[i]);

            }

----------插入排序

for (int i = 0; i < array.Length; i++)

            {

                int t = array[i];

                int j = i;

                while (j>0&&(array[j-1]>t))

                {

                    array[j] = array[j - 1];

                    j--;

                }

                array[j] = t;

            }

            //数组常见操作

            //获取最大值,最小值

            //排序(选择排序,冒泡排序)

            //折半查找(二分查找)

            int[] array = new int[] { 10, 9, 11, 6, 26, 23, 1, 54, 23, };

            int temp ;

            //选择排序

            for (int i = 0; i < array.Length; i++)

            {

                for (int j = i+1; j < array.Length; j++)

                {

                    if (array[i] < array[j]) {

                        temp = array[i];

                        array[i] = array[j];

                        array[j] = temp;

                    }

                }

            }

            for (int i = 0; i < array.Length; i++)

            {

                Console.WriteLine(array[i]);

            }

            Console.WriteLine("--------------------------------------------------------------");

            //冒泡排序

            int[] Bubble = new int[] { 15, 15, 487, 1512, 12, 20, 0, 4154, 121, 95, 124 ,4854};

            for (int i = 0; i < Bubble.Length-1; i++)

            {

                for (int j = 0; j < Bubble.Length-i-1; j++)

                {

                    if (Bubble[j] > Bubble[j + 1]) {

                        temp = Bubble[j + 1];

                        Bubble[j + 1] = Bubble[j];

                        Bubble[j] = temp;

                    }

                }

            }

            for (int f = 0; f < Bubble.Length; f++)

            {

                Console.WriteLine(Bubble[f]);

            }

            Console.WriteLine("_______________________________________________________________________________");

            //折半查找

            int min = 0;

            int max = Bubble.Length-1;

            int mid = (min + max) /2;

            while (min<=max)

            {

                mid = (min + max) / 2;

                if (4854 < Bubble[mid])

                {

                    max = mid - 1;

                }

                else if (4854 > Bubble[mid])

                {

                    min = mid + 1;

                }

                else {

                    Console.WriteLine(mid);

                    break;

                }

            }

            Console.ReadKey();

        }

    }

}

相关文章

  • 数组

    数组数组数组数组数组数组数组数组数组

  • JavaScript - 5.数组<增删改查>

    数组 Array 数组 - 增 数组 - 删 / 改 数组 - 查 数组 - 自动 toString() 数组 -...

  • PHP数组使用

    数组定义 数组增、删、改 数组查询 数组排序 数组合并、分割 数组比较、去重复 数组长度 数组遍历 数组转换 其他...

  • 》》》PHP初入---(三)

    数组定义 1.索引数组:数组下标是整型的 声明数组: 访问数组: count(数组)--获取数组长度 查看数组所有...

  • JavaScript中数组的常用操作

    数组的遍历 数组的映射 数组的简化 数组的连接 获取数组的片段 数组的拷贝 查找数组 数组去重

  • JavaSE之数组

    六、数组 目录:数组概述、数组声明创建、数组使用、多维数组、Array类、稀疏数组 1.什么是数组 数组的定义:数...

  • Shell数组、关联数组

    数组 定义数组 获取数组 关联数组 定义关联数组 获取关联数组

  • 学习Java第五天

    数组是多个数据的集合 数组的语法 数组元素类型【】 数组名; 多维数组: 数组元素类型【】【】 数组名; 多维数组...

  • php基础精粹

    PHP php数组 php数组之索引数组初始化 PHP数组之索引数组赋值 PHP数组之访问索引数组内容 PHP数组...

  • C语言的惯用集

    数组部分 数组部分 清空数组a 把数据读进数组a 对数组a求和

网友评论

      本文标题:数组

      本文链接:https://www.haomeiwen.com/subject/annhkftx.html