2022-07-15 第六组 润土 Java03数据结构学习笔记
数据结构:
数组:最基本的数据结构(线性表)
链表:单向链表,双向链表
树:二叉树
图:深度优先遍历、广度优先遍历
查找:
线性查找
折半查找
排序:
冒泡排序*
快速排序
插入排序*
选择排序*
希尔排序
堆排序
归并排序
桶排序
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数据结构学习笔记的更多相关文章
- 2022-07-14 第六组 润土 Java02学习笔记
1.引用数据类型 Scanner类: Scanner shuru=new Scanner(System.in); int a=shuru.nextInt();//输入整型 String b= shur ...
- 2022-07-13 第六组 润土 Java01学习笔记
1.数据类型: 基本数据类型: 整型: byte 字节型 -128-127 1个字节 short 短整型 2个字节 int 整型 4个字节 long 长整型 8个字节 浮点型: float 单精度 4 ...
- 2022-07-09 第六组 润土 CSS学习笔记
HTML:用来描述网页的一种语言. 超文本语言.动画.音频.视频.特效.超链. 用标签定义网页 浏览器 流行浏览器: IE微软宣布永久关闭 firefox火狐 Chrom谷歌 Sarifi vscod ...
- 2022-07-11 第六组 润土 JavaScript01学习笔记
1.JS的数据类型: 数字 字符串 布尔型 空(null) unefined(未定义) 2.定义变量 var let(不可重复) const(常量不可更改) 3.复杂的数据类型: 数组:一个变量对应多 ...
- 2022-07-12 第六组 润土 JavaScript02学习笔记
1.循环语句 for循环: for(let i=0;i<10;i++){循环体} while循环: while(i<10){循环体}: do... while...循环: do{循环体}w ...
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
sql server 关于表中只增标识问题 由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...
- Linux用户、组帐号和权限(学习笔记九)
一.用户分类 超级用户:root 普通用户:由超级用户和管理员创建,一般只在自己的目录中有完全的权限 程序用户: 二.用户账号管理 常用命令: useradd:添加用户 userdel:删除用户 pa ...
- 第1-5章 慕课网微信小程序开发学习笔记
第1章 前言:不同的时代,不同的Web --微信小程序商城构建全栈应用 http://note.youdao.com/noteshare?id=a0e9b058853dbccf886c1a890594 ...
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
随机推荐
- vscode无法运行和调试使用了部分stl库的程序(无法定位程序输入点__gxx_personality_v0的一个解决方法)
一.起因 vscode 不能运行带有部分 stl 库的程序,编译不会报错,运行也不会报错但是也没有结果,调试的话会有下图中报错,如果没有string或者vector一切正常. 二.分析 cmd 中运 ...
- [还不会搭建博客吗?]centos7系统部署hexo博客新手入门-进阶,看这一篇就够了
@ 目录 *本文说明 请大家务必查看 前言 首先介绍一下主角:Hexo 什么是 Hexo? 环境准备 详细版 入门:搭建步骤 安装git: 安装node: 安装Hexo: 进阶:hexo基本操作 发布 ...
- 实战 | Linux根分区扩容
一个执着于技术的公众号 一个执着于技术的公众号 前言 Linux系统作为服务器操作系统,经常遇到一个问题就是服务器分区磁盘空间不足需要扩容的情况.本文以linux系统最常见的发行版centos7系统为 ...
- 按照 Promise/A+ 规范逐行注释并实现 Promise
0. 前言 面试官:「你写个 Promise 吧.」 我:「对不起,打扰了,再见!」 现在前端越来越卷,不会手写 Promise 都不好意思面试了(手动狗头.jpg).虽然没多少人会在业务中用自己实现 ...
- 【Java8新特性】Lambda表达式
一.Lambda 表达式 是什么? Lambda读音:拉姆达. Lambda是一个匿名函数,匿名函数就是一个没有名字的函数. Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中). ...
- CSAPP 之 ShellLab 详解
前言 本篇博客将会详细介绍 CSAPP 之 ShellLab 的完成过程,实现一个简易(lou)的 shell.tsh 拥有以下功能: 可以执行外部程序 支持四个内建命令,名称和功能为: quit:退 ...
- 无法启动报,To install it, you can run: npm install --save @/components/xxxx.vue
运行的过程中后台报错 npm install --save @/components/xxx.vue 重装了node_modules依然没有用. 其实是组件路径写错了 总结 以后出现提醒安装那个vue ...
- linux系统下文件误删除该如何恢复?
一.linux误删除数据的场景 在实际的工作中,朋友们可能会将linux服务器上的文件不小心误删除掉了.而且越是资历老的工程师越容易犯这样的错误,敲代码的速度也是够快,啪啪rm -rf一个回车,然后就 ...
- 构建第一个模型:KNN算法(Iris_dataset)
利用鸢尾花数据集完成一个简单的机器学习应用~万丈高楼平地起,虽然很基础,但是还是跟着书敲了一遍代码. 一.模型构建流程 1.获取数据 本次实验的Iris数据集来自skicit-learn的datase ...
- C++primer第一章
第一章 : 开始 1.1 编写一个简单的C++程序 要点:每个函数有且只能拥有一个main函数,且main的默认返回是一个int类型. 函数定义:返回类型,函数名,形参列表,函数体 1.1.1编译 运 ...