C#数据结构与算法》--2020 最新精讲版:4-4 数组栈、链表栈性能比较

目录

 一.目的

1.想:将B站视频《C#数据结构与算法》--2020 最新精讲版:提高学习效率,所以编写此系列博客

2.因为这个系列教程评价目前是最好的,所以想看视频、写代码、写博客

二.参考

1.C#数据结构与算法》-3-4 删除链表中的结点

三.注意

1.你可以忘记代码,也不能忘记 演示动画:因为记住了演示动画,思路就有了,写代码就有了思路

四.操作:1:成功

1.时间复杂度分析

1.运行效果:数组栈:运行时间比较

1.1 扩容和不扩容的数组栈时间比较

1.运行效果:

1.运行结果:官方Stack栈耗时真的很少,因为他们不开源,他们有自己的算法工程师,进行不断地优化


 一.目的

1.想:将B站视频《C#数据结构与算法》--2020 最新精讲版:提高学习效率,所以编写此系列博客

2.因为这个系列教程评价目前是最好的,所以想看视频、写代码、写博客


二.参考

1.C#数据结构与算法》-3-4 删除链表中的结点

3-4 删除链表中的结点https://www.bilibili.com/video/BV1gE41157pC?p=12

  1. 学习的视频

三.注意

1.你可以忘记代码,也不能忘记 演示动画:因为记住了演示动画,思路就有了,写代码就有了思路

四.操作:1:成功

1.时间复杂度分析

C#数据结构与算法》--2020 最新精讲版:4-4 数组栈、链表栈性能比较_第1张图片

 

1.运行效果:数组栈:运行时间比较

1.1 扩容和不扩容的数组栈时间比较

        /// 
        ///[功能:测试栈耗时]  [Author:XZY Time:20211022 视频编号:4-3 链表栈]
        /// 
        /// 栈
        /// 栈里面的长度
        /// 
        public static long TestStack(IStack stack,int N)
        {
            Stopwatch t = new Stopwatch();
            t.Start();
            for (int i = 0; i < N; i++)
                stack.Push(i);

            for (int i = 0; i 
        static void Main(string[] args)
        {
            int N = 1000000;

            //Array1Stack array1Stack = new Array1Stack();//不扩容的方式创建对象
            Array1Stack array1Stack = new Array1Stack(N);//扩容的方式创建对象
            long t1 = TestStack(array1Stack, N);
            Console.WriteLine("array1Stack‘time=" + t1 + "ms");
        }

C#数据结构与算法》--2020 最新精讲版:4-4 数组栈、链表栈性能比较_第2张图片

 

C#数据结构与算法》--2020 最新精讲版:4-4 数组栈、链表栈性能比较_第3张图片

 

1.运行效果:

  • 链表创建时候是:不连续、访问空的地址、还需要做好下一个节点的连接,所以比较耗时 

C#数据结构与算法》--2020 最新精讲版:4-4 数组栈、链表栈性能比较_第4张图片

        /// 
        ///[功能:测试栈耗时]  [Author:XZY Time:20211022 视频编号:4-3 链表栈]
        /// 
        /// 栈
        /// 栈里面的长度
        /// 
        public static long TestStack(IStack stack,int N)
        {
            Stopwatch t = new Stopwatch();
            t.Start();
            for (int i = 0; i < N; i++)
                stack.Push(i);

            for (int i = 0; i  array1Stack = new Array1Stack();//不扩容的方式创建对象
            //Array1Stack array1Stack = new Array1Stack(N);//扩容的方式创建对象
            long t1 = TestStack(array1Stack, N);
            Console.WriteLine("array1Stack‘time=" + t1 + "ms");

            LinkedList1Stack linkedList1Stack = new LinkedList1Stack();
            long l2 = TestStack(linkedList1Stack, N);
            Console.WriteLine("linkedList1Stack‘time=" + l2 + "ms");
        }

1.运行结果:官方Stack栈耗时真的很少,因为他们不开源,他们有自己的算法工程师,进行不断地优化

 

            //测试:3:Stack栈 的耗时
            Stack stack = new Stack(N);
            Stopwatch t = new Stopwatch();
            t.Start();
            for (int i = 0; i < N; i++)
                stack.Push(i);

            for (int i = 0; i < N; i++)
                stack.Pop();

            t.Stop();
            Console.WriteLine("Stack‘time=" + t.ElapsedMilliseconds + "ms");

C#数据结构与算法》--2020 最新精讲版:4-4 数组栈、链表栈性能比较_第5张图片

你可能感兴趣的:(C#数据结构与算法,链表,数据结构,c#)