数据结构:

          数组:最基本的数据结构(线性表)
链表:单向链表,双向链表
树:二叉树
图:深度优先遍历、广度优先遍历
查找:
线性查找
折半查找
排序:
冒泡排序*
快速排序
插入排序*
选择排序*
希尔排序
堆排序
归并排序
桶排序

1、查找

线性查找:

    int [] arr=new int []{1,58,46,33,10,5,-58};
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个数:");
int number=sc.nextInt();
int j=-1;
for(int I=0; i<arr.length; i++){//循环遍历数组,利用j存储下标来输出提示等。
if(arr[i]==number){
j=i;
}
}
if(j==-1){
System.out.print("你要找的数是:"+number+" 在目标数组不存在");
} else if (j!=-1) {
System.out.print("你要找的数是:"+number+" 在目标数组中的下标是:"+j);
} 折半查找: int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7};
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数字:");
int number = sc.nextInt();
int left = 0, right = arr.length - 1;//两个下标
if (number < arr[left] || number > arr[right]) {
System.out.println("数字不存在");
} else {
int res = -1;
while (left <= right) {
int middle=(left+right)/2;
if(arr[middle]==number){
res=middle;break;
} else if (number<arr[middle]) {
right=middle-1;
}else {
left=middle+1;
}
}
System.out.print("下标:"+res);
}

2、排序

冒泡排序:
int [] arr=new int []{1,58,46,33,10,5,-8};
int i=0,j=0;
while(i<(arr.length-1)){
while (j< (arr.length-(i+1))){
if(arr[j]>arr[j+1]){
int max;
max=arr[j+1];
arr[j+1]=arr[j];
arr[j]=max;
}
j++;
}
j=0;
i++;
}
int n=0;
System.out.println("long "+arr.length);
while(n< arr.length){
System.out.print(arr[n]+" ");
n++;
} 选择排序:
int [] arr=new int[]{1,25,48,12,10,-8,127,56};
for(int i=0;i<arr.length-1;i++){
int min=i;
int temp=arr[i];
for(int j=(i+1);j<arr.length;j++){
if(arr[i]>arr[j]){
arr[i]=arr[j];
min=j;
}
}
arr[min]=temp;
System.out.print("第"+(i+1)+"次:");
for (int n=0;n<arr.length;n++){
System.out.print(arr[n]+" ");
}
System.out.println();
} 插入排序:
int [] arr=new int[]{10,5,2,18,3,50,100,-1};
for(int i=0;i<arr.length-1;i++){
int min=arr[i+1];
for(int k=i;k>0;k--){
if(min<arr[k]){
for(int j=i;j>k-1;j++){
arr[j]=arr[j-1];
}
break;
}
}
}

2022-07-15 第六组 润土 Java03数据结构学习笔记的更多相关文章

  1. 2022-07-14 第六组 润土 Java02学习笔记

    1.引用数据类型 Scanner类: Scanner shuru=new Scanner(System.in); int a=shuru.nextInt();//输入整型 String b= shur ...

  2. 2022-07-13 第六组 润土 Java01学习笔记

    1.数据类型: 基本数据类型: 整型: byte 字节型 -128-127 1个字节 short 短整型 2个字节 int 整型 4个字节 long 长整型 8个字节 浮点型: float 单精度 4 ...

  3. 2022-07-09 第六组 润土 CSS学习笔记

    HTML:用来描述网页的一种语言. 超文本语言.动画.音频.视频.特效.超链. 用标签定义网页 浏览器 流行浏览器: IE微软宣布永久关闭 firefox火狐 Chrom谷歌 Sarifi vscod ...

  4. 2022-07-11 第六组 润土 JavaScript01学习笔记

    1.JS的数据类型: 数字 字符串 布尔型 空(null) unefined(未定义) 2.定义变量 var let(不可重复) const(常量不可更改) 3.复杂的数据类型: 数组:一个变量对应多 ...

  5. 2022-07-12 第六组 润土 JavaScript02学习笔记

    1.循环语句 for循环: for(let i=0;i<10;i++){循环体} while循环: while(i<10){循环体}: do... while...循环: do{循环体}w ...

  6. sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)

    sql server 关于表中只增标识问题   由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...

  7. Linux用户、组帐号和权限(学习笔记九)

    一.用户分类 超级用户:root 普通用户:由超级用户和管理员创建,一般只在自己的目录中有完全的权限 程序用户: 二.用户账号管理 常用命令: useradd:添加用户 userdel:删除用户 pa ...

  8. 第1-5章 慕课网微信小程序开发学习笔记

    第1章 前言:不同的时代,不同的Web --微信小程序商城构建全栈应用 http://note.youdao.com/noteshare?id=a0e9b058853dbccf886c1a890594 ...

  9. Spring Boot 学习笔记(六) 整合 RESTful 参数传递

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...

随机推荐

  1. Java语言的词法分析器的Java实现

    一.实验目的 1. 学会针对DFA转换图实现相应的高级语言源程序. 2. 深刻领会状态转换图的含义,逐步理解有限自动机. 3. 掌握手工生成词法分析器的方法,了解词法分析器的内部工作原理. 二.实验内 ...

  2. 攻防世界web进阶题—bug

    攻防世界web进阶题-bug 1.打开题目看一下源码,没有问题 2.扫一下目录,没有问题 3.查一下网站的组成:php+Apache+Ubuntu 只有登录界面 这里可以可以想到:爆破.万能密码.进行 ...

  3. 蓝桥杯Web:【功能实现】菜单树检索

    [功能实现]菜单树检索 背景介绍 实际工作中很多前端攻城狮都会遇到这样一个需求:在多级菜单树中模糊搜索匹配的菜单项,并显示出来. 本题需要在已提供的基础项目中使用 Vue.js 知识,实现对已提供的二 ...

  4. numpy学习笔记Ⅰ

    一直被numpy和matplotlib困扰,打算好好学习一下,也是从自己的观点,学对自己帮助最大的部分 主要参考<https: www.runoob.com="" numpy ...

  5. JavaMetaweblogClient,Metaweblog的java实现-从此上传博客实现全平台

    目录 1. 什么是Metaweblog? 2. Metaweblog的应用 3. 如何使用Metaweblog 4. 本项目介绍 4.1 metaweblog与java之间的关系映射 4.2 使用Ja ...

  6. 好客租房3-React的基本使用

    2.1React的安装 安装命令:npm i react react-dom react 包是核心,提供创建元素,组件等功能 react-dom包提供DOM相关功能等 2.2React的使用 1引入r ...

  7. MyBatis 结果映射总结

    前言 结果映射指的是将数据表中的字段与实体类中的属性关联起来,这样 MyBatis 就可以根据查询到的数据来填充实体对象的属性,帮助我们完成赋值操作.其实 MyBatis 的官方文档对映射规则的讲解还 ...

  8. 自动装箱与自动拆箱——JavaSE基础

    自动装箱与自动拆箱 自动装箱与拆箱就是编译器蜜糖(Compiler Sugar) Integer a = 234; // 自动装箱,实际上是Integer a = Integer.valueOF(23 ...

  9. 用C语言实现井字棋(人人/AI人机)--完结版

    目录 用C语言实现井字棋(人人/AI人机)--完结版 BUG与优化3: 1. 修改了step的计算方法,每个玩家玩完就加一次step 2. 改变了电脑下棋的逻辑,每个玩家玩完之后都跳过这次循环 源码: ...

  10. Wireshark学习笔记(一)常用功能案例和技巧

    @ 目录 常用功能 1.统计->捕获属性 2.统计->协议分级 3.过滤包Apply as filter E1:过滤出特定序号的包 E2:过滤出某IP地址或端口 E3:导出php文件 E4 ...