• Java架构师鲁班二期学习笔记


    1.两层for循环实现插入排序

    public static ArrayList<Integer> sort(ArrayList<Integer> a) {
            for (int i = 1; i < a.size(); i++) {//从第二个元素开始,往前找到属于自己的位置下标
                int tmp = a.get(i);//当前要插入有序数组的元素tmp
                int j = i - 1;
                for (; j >= 0; j--) {
                    if (a.get(j)<tmp) {//目前拿到的a[j]值小于tmp,结束本轮
                        break;
                    } else
                       a.set(j + 1, a.get(j));//否则有序的a[0]~a[j]中a[j]后移让出一个位置
                }
                a.set(j + 1, tmp);//将tmp插在j+1
            }
            return a;
        }
    

    2.使用自定义简单的栈来实现2个栈的插入排序

    Stack自定义内容:

    package day01;
    import java.util.ArrayList;
    
    public class Stack {
        public ArrayList<Integer> a;//核心内容区a列表
        public Stack(){
            a = new ArrayList<Integer>(10);
    ;    }
        public int pop(){
            if(a.size()<=0){
                return -1;//-1表示栈为空
            }else {
              return a.remove(a.size()-1);//弹出栈顶元素,返回它
            }
        }
        public void push(int val){
              a.add(val);//增加val元素
        }
        public int top(){
            return a.size()>0?a.get(a.size()-1):-1;//返回栈顶元素
        }
        public ArrayList<Integer> print(){
            return a;//打印核心数组
        }
    }
    
    

    插入排序实现部分:

    Stack s = new Stack();//有序部分
    Stack r = new Stack();//待排部分
    //输入部分 r栈元素随机初始化
    for(int in=0;in<100;in++) {
            r.push((int)(Math.random()*1000));
       }
       
     //核心算法部分
     while((tmp=r.pop())!=-1){//待排部分还有元素时
                i=0;
                while(s.top()>tmp){//有序部分的栈顶比tmp大则弹出,让tmp找到合适的位置
                    r.push(s.pop());弹出的元素放r里面寄存
                }
                s.push(tmp);//放入S栈
            }
     //
    
  • 相关阅读:
    windows 安装 python _ flask
    open-falcon 前端代码在windows上运行
    windows下 安装python_ldap MySQL-python
    rocketmq集群、配置详解和常用命令
    docker仓库管理(9)
    docker镜像管理和dockerfile详解(8)
    docker学习路线图
    docker组件如何协作(7)
    docker核心组件(6)
    docker镜像下载加速(5)
  • 原文地址:https://www.cnblogs.com/CszShuzi/p/11059117.html
Copyright © 2020-2023  润新知