简介 目录 评价 推荐
  • kardec 2021-08-17

    选择排序

    0赞 · 0采集
  • kardec 2021-08-16

    链表

    package com.damu.mc;
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;public 
    class LinkedTest {    
           public static void main(String[] args) {   
         // 数组实现        List<String> array = new ArrayList<>();      
           // 链表实现        List<String> linked = new LinkedList<>();     
              // 新增数据        long start = System.nanoTime();    
                  for (int i = 0; i < 1000; i++) {           
                   array.add("hello damu"); // 769 9897    
                           // 查询、修改        }      
                             long end = System.nanoTime();    
                                 System.out.println("array: " + (end - start));  
                                       long start2 = System.nanoTime();    
                                           for (int i = 0; i < 1000; i++) {     
                                                  linked.add("hello damu"); // 367 9529      
                                                        // 新增、删除        }     
                                                           long end2 = System.nanoTime();   
                                System.out.println("linked: " + (end2 - start2));    }}
    0赞 · 0采集
  • kardec 2021-08-16

    队列代码

    package com.damu.mc;


    import java.util.Queue;

    import java.util.concurrent.ArrayBlockingQueue;


    /**

     * 队列操作:项目需求

     *

     * 高并发的业务操作,需要同时处理多个用户的请求(抢购系统)

     *      问题:后端的程序不能及时的处理所有用户的请求

     *      缓冲操作:将用户的请求排队存放(有顺序的存放),让后台系统逐个处理

     *      思考:使用什么样的技术实现起来更加友好?

     * 可以使用普通集合实现

     *      提高效率,使用多线程操作,普通集合存在并发问题需要处理

     * 可以使用线程安全的集合

     *      使用多线程的情况下,完成高效率的操作

     *      处理完每个请求之后,需要删除对应的 请求数据

     * 可以使用队列操作(线程安全)

     *      既能保证多线程情况下的高效率处理

     *      能保证每个请求处理之后自动删除

     *      [

     *      > 保存每个抢购请求时--> 入队操作 offer(url)

     *      > 处理每个抢购请求时--> 出队操作 poll()

     *      ]

     */

    public class QueueTest {


        public static void main(String[] args) {


            // 声明一个队列:存储3个数据

            Queue<String> msg = new ArrayBlockingQueue<String>(3);


            msg.add("damu"); // Collections集合的方法


            msg.offer("大牧"); // 队列的操作方法:增加数据:入队


            msg.element(); // 查询队首位置的第一个数据:不删除


            msg.poll(); // 查询并的删除队首位置的第一个数据:head/front


            msg.size(); // Collections集合的方法,查询队列中的所有数据总数

        }

    }

    0赞 · 0采集
  • kardec 2021-08-16

    队列代码

    package com.damu.mc;


    import java.util.Queue;

    import java.util.concurrent.ArrayBlockingQueue;


    /**

     * 队列操作:项目需求

     *

     * 高并发的业务操作,需要同时处理多个用户的请求(抢购系统)

     *      问题:后端的程序不能及时的处理所有用户的请求

     *      缓冲操作:将用户的请求排队存放(有顺序的存放),让后台系统逐个处理

     *      思考:使用什么样的技术实现起来更加友好?

     * 可以使用普通集合实现

     *      提高效率,使用多线程操作,普通集合存在并发问题需要处理

     * 可以使用线程安全的集合

     *      使用多线程的情况下,完成高效率的操作

     *      处理完每个请求之后,需要删除对应的 请求数据

     * 可以使用队列操作(线程安全)

     *      既能保证多线程情况下的高效率处理

     *      能保证每个请求处理之后自动删除

     *      [

     *      > 保存每个抢购请求时--> 入队操作 offer(url)

     *      > 处理每个抢购请求时--> 出队操作 poll()

     *      ]

     */

    public class QueueTest {


        public static void main(String[] args) {


            // 声明一个队列:存储3个数据

            Queue<String> msg = new ArrayBlockingQueue<String>(3);


            msg.add("damu"); // Collections集合的方法


            msg.offer("大牧"); // 队列的操作方法:增加数据:入队


            msg.element(); // 查询队首位置的第一个数据:不删除


            msg.poll(); // 查询并的删除队首位置的第一个数据:head/front


            msg.size(); // Collections集合的方法,查询队列中的所有数据总数

        }

    }

    0赞 · 0采集
  • kardec 2021-08-16

    队列

    0赞 · 0采集
  • kardec 2021-08-16

    队列

    0赞 · 0采集
  • kardec 2021-08-16




    0赞 · 0采集
  • kardec 2021-08-16

    数组结构


                            

    0赞 · 0采集
  • qq_慕移动208130 2021-03-29

    http://img.mukewang.com/60612a4c0001492705110146.jpg

    1. front == tail :空队列

    2. 新数据入队,后置计数器自增(tail++ )

    3. 队列长度:tail - front

    4. 数据出队:数据从队首出去(删除),前置计数器自增(front++)

    5. 入队和出队操作过程中,为了有效利用空间,会进行数据平移(消耗系统性能),为了改进这个缺点,我们可以用循环队列,就是不用再平移了

    循环队列的判断

    1. front == tail 空队列

    2. (front+1) % len = =front 说明队列中的数据满了

    0赞 · 1采集
  • 禾口王广予口贝 2020-07-03

    数组(ArrayList):查询、修改效率高;新增、删除效率低;

    列表(LinkedList):查询、修改效率低;新增、删除效率高;

    截图
    1赞 · 1采集
  • 慕妹8372246 2020-04-28

    冒泡排序 空间O(1)

    时间: O(1)

    最坏 o(n评方)

    截图
    0赞 · 0采集
数据加载中...