数据结构和算法——线性结构(1)数组、栈、队列和单链表

1. 数组

  ● 面向对象: add 、insert 、get 、delete
  ● 查找算法:线性查找 (依次对比查找,效率低)、二分查找(前提是有序数组)

二分查找思路:

import java.util.Scanner;

public class BinarySearch {
   
    public static void main(String[] args) {
   
        //定义目标数组
        int[] arr = {
   1,2,3,4,5,6,7,8};
        //记录初始、结束、中间位置
        int begin = 0;
        int end = arr.length-1;
        int mid = (begin + end)/2;
        System.out.println("请输入要查找的元素:");
        Scanner scanner = new Scanner(System.in);
        int target = scanner.nextInt();
        int index = -1;
        //循环查找元素
        while (true){
   
            if (target > arr[end] || target < arr[begin] ) {
   
                throw new RuntimeException("输入的数不存在");
                }
            //中间元素刚好是要查找的元素
            else if (arr[mid] == target) {
   
                index = mid;
                break;

            } else {
    //中间元素大于目标元素
                if (arr[mid] > target) {
   
                    //调整结束的位置
                    end = mid - 1;
                    //中间元素小于目标元素
                } else {
   //调整开始位置
                    begin = mid + 1;
                }
            }
            mid = (begin + end)/2;
        }
        System.out.println("要查找的元素:"+target+"\t"+"索引是:"+index);
    }
}

执行结果:
在这里插入图片描述
图 1-1 运行结果截图

2. 栈

  栈是一种基于先进后出策略的数据类型。就例如你在网上冲浪,点击一个超链接,浏览器会显示一个新的页面,并将它压入一个栈,你可以通过不断点击超链接来浏览新的页面,但总可以通过点击“回退”重新浏览以前的页面。栈的先进后出就是这样的原理。

public class StackDemo {
   
    int[] elements
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值