list.BinarySearch()

作者:追风剑情 发布于:2023-10-26 16:27 分类:C#

BinarySearch() 用于对已排序的列表进行搜索,如果找到相等的元素,则返回从零开始的索引号,如果找不到,则返回一个负数,该负数是下一个元素的索引的按位补码。

using System;
using System.Collections.Generic;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> list = new List<int>();
            list.Add(3);
            list.Add(1);
            list.Add(5);

            Console.WriteLine("排序前");
            Print(list);

            list.Sort();
            Console.WriteLine("排序后");
            Print(list);

            //二叉搜索,寻找合适的插入位置
            int idx = list.BinarySearch(2);
            //如果找不到,则将返回一个负数,该负数是下一个元素的索引的按位补码
            if (idx < 0) idx = ~idx;
            Console.WriteLine("应在list[{0}]插入{1}", idx, 2);
            list.Insert(idx, 2);
            Print(list);

            Console.ReadKey();
        }

        public static void Print(List<int> list)
        {
            list.ForEach(x => Console.Write(x + " "));
            Console.WriteLine();
        }
    }
}

运行测试
1111.png

标签: C#

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号