C#常用算法:数组

C#对数组概念进行了彻底的面向对象化,很大程度上降低了我们对数组结构的使用难度,并且它已经支持了.Net平台的垃圾收集机制。随着C#版本的不断更新,从数组中派生出的新数据结构也日益增加。按照28原理,我们只需要使用其中的20%就能解决80%的问题。但为了做到极致,我们还是需要了解下它们。本文总结到C#(4.0)为止的一些与数组相关的数据结构以及它们的用法。

基本数组

string[] fruit = new string[5];
string[] vegetable = new string[] { "chinese cabbage", "pepper", "potato", "tomato", "broccoli" };
fruit[0] = "orange";
fruit[1] = "banana";
fruit[2] = "apple";
fruit[3] = "grape";
fruit[4] = "lychee";

多维数组

string[,] monthplan=new string[30,7];
monthplan[0,0]="A";
monthplan[0, 1] = "B";

锯齿数组

string[][] foodenum = new string[7][];
foodenum[0] = new string[10];
foodenum[1] = new string[9];
foodenum[2] = new string[8];
foodenum[3] = new string[7];
foodenum[4] = new string[6];
foodenum[5] = new string[5];
foodenum[6] = new string[6];

IEnumerator接口

public static IEnumerator<string> Yield()
{
    yield return "apple";
    yield return "orange";
    yield return "banana";
}  

public static void IEnumeratorTest()
{
    var iterator=Yield();
    while (iterator.MoveNext())
    {
        Console.WriteLine(iterator.Current);
    }
    /*OUT PUT
     apple
     orange
     banana
     */
}

数组片断

public static void ArraySegment()
{
    string[] vegetable = new string[] { "chinese cabbage", "pepper", "potato", "tomato", "broccoli" };
    // count: get data begin the current index.
    ArraySegment<string> arraySegment = new ArraySegment<string>(vegetable,2,2);
    for (int i = arraySegment.Offset; i <= arraySegment.Offset + arraySegment.Count; i++)
    {
        Console.WriteLine(arraySegment.Array[i]);
    }
    /*
     * OUT PUT
     * potato
       tomato
       broccoli
     */
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c#
, 数组
, 数据结构
, string
, new
, c# 结构 数组
, c#算法数组
, c#锯齿数组
string数组
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-11-17 23:38:28

C#常用算法:数组的相关文章

php 常用算法和时间复杂度

本篇文章是对php中的常用算法以及时间复杂度进行了详细的分析介绍,需要的朋友参考下   按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3) 复制代码 代码如下: //二分查找O(log2n) function erfen($a,$l,$h,$f){ if($l >$h){ return false;} $m = intval(($l+$h)/2); if ($a[$m] == $f){ r

JS实现的几个常用算法_javascript技巧

(1)数组去重 原理:定义一个对象obj,然后把数组元素作为obj的属性名,利用属性名是否重复进行判重 var unique = function(arr){ let obj = {}; let newArr = []; arr.forEach(function(x){ if(!obj[x]){ //如果对象中没有该元素对应的属性 obj[x] = true; newArr.push(x); } }); return newArr; } (2)使用快速排序算法对数组进行排序 这里面包括两种效果,

常用算法之分治法与动态规划法

          之所以把这两种算法放到一起,是因为它们都是用来求最优解的问题,与贪心算法是不同的.但是这两种算法又有一些区别,下面来做解释:           分治,即分而治之,把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题--直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并.                           上图用一个例子来解释如下:              当n>1时,想求得T(n),必须知道T(n-1),以此类推,所

PHP面试常用算法(推荐)_php实例

一.冒泡排序 基本思想: 对需要排序的数组从后往前(逆序)进行多遍的扫描,当发现相邻的两个数值的次序与排序要求的规则不一致时,就将这两个数值进行交换.这样比较小(大)的数值就将逐渐从后面向前面移动. //冒泡排序 <?php function mysort($arr) { for($i = 0; $i < count($arr); $i++) { $isSort = false; for ($j=0; $j< count($arr) - $i - 1; $j++) { if($arr[$

C/C++常用算法【C语言顺序查找(随机数)】【1】

这是我学习唐峻,李淳的<C/C++常用算法第一天> 1.8.1. 查找数字: 程序随机生成一个拥有20个整数数据的数组,然后输入要查找的数据.接着,可以采用醉简单的逐个对比的方法进行查找,也就是顺序查找的方法,下面给出该算法完整的C语言代码: #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 20 int main(){ int arr[N],x,n,i; int f=-1;

五大常用算法——分治法,动态规划,回溯法,分支界限法,贪心算法

分治算法一.基本概念    在计算机科学中,分治法是一种很重要的算法.字面上的解释是"分而治之",就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题--直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并.这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)--     任何一个可以用计算机求解的问题所需的计算时间都与其规模有关.问题的规模越小,越容易直接求解,解题所需的计算时间也越少.例如,对于n个元素

PHP常用算法和数据结构示例(必看篇)

实例如下: </pre><pre name="code" class="php"><?php /** * Created by PhpStorm. * User: qishou * Date: 15-8-2 * Time: 上午9:12 */ header("content-type:text/html;charset=utf-8"); $arr = array(3,5,8,4,9,6,1,7,2); echo im

常用算法:C#约瑟夫环问题

约瑟夫环问题,即设有n个人坐成一个圈,从某个人开始报数,数到m的人出列,接着从出列的下一个人开始重新报数,数到m的人再出列,如此循环,直到所有人都出列为止.最后按出列顺序输出.代码如下: //从第start人开始计数,以alter为单位循环记数出列,总人数为total public int[] Jose(int total, int start,int alter) { int j, k = 0; //count数组存储按出列顺序的数据,以当结果返回 int[] count = new int[

php计算两个整数的最大公约数常用算法小结

 这篇文章主要介绍了php计算两个整数的最大公约数常用算法,实例总结了求最大公约数的三种常用方法,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php计算两个整数的最大公约数常用算法.分享给大家供大家参考.具体如下:   代码如下: <?php //计时,返回秒 function microtime_float () { list( $usec , $sec ) = explode ( " " , microtime ()); return ((float)