zoukankan      html  css  js  c++  java
  • 列表 查找元素二分查找

    在数组元素中查找元素最长用的是IndexOf 或 LastIndexOf 方法,另外还可以使用BinarySearch方法执行搜索;

     indexOf方法从前向后搜索指定的字符串,如果找到返回匹配的第一项自0 的索引,否则返回-1

      LastIndexOf   方法从后向前搜索指定的字符串,如果找到返回匹配的第一项自0 的索引,否则返回-1

       BianrySearch使用二分查找算法从集合中搜索指定的值,并返回找到从0开始的索引,否则返回-1

    代码如下:

     #region 查找
                    String[] str = { "第6个元素","第1个元素", "第3个元素", "第4个元素", "第2个元素", "第5个元素"  };
                    ArrayList al = new ArrayList(str);
                    int i = al.IndexOf("第3个元素");
                    Console.WriteLine("第3个元素在集合中的位置是:{0}",i);
                    i = al.LastIndexOf("第5个元素");
                    Console.WriteLine("第5个元素在集合中的位置是:{0}", i);
                    String[] str1 = { "第1个元素", "第2个元素", "第3个元素","第4个元素","第5个元素","第6个元素" };
                    ArrayList al1 = new ArrayList(str1);
                    int j = al1.BinarySearch("第2个元素");//使用这个只能是已经排序好的可以否则查找不到;
                    if (j > 0)
                    {
                        Console.WriteLine("第2个元素在集合中的位置是:{0}", j);
                    }
                    else
                    {
                        Console.WriteLine("没有找到");
                    }
                    #endregion

    如果上面不定义al1那么在Binary()调用后将执行else

  • 相关阅读:
    ACM 一种排序
    ACM Binary String Matching
    ACM 括号配对问题
    ACM BUYING FEED
    ACM 喷水装置(二)
    ACM 会场安排问题
    ACM 推桌子
    ACM 心急的C小加
    ACM 田忌赛马
    ACM 疯牛
  • 原文地址:https://www.cnblogs.com/lichen396116416/p/1921096.html
Copyright © 2011-2022 走看看