Java学习笔记day07_琐碎知识_水仙花数_ASCII码_冒泡排序_简单选择排序_折半查找
琐碎知识: 水仙花数, ASCII码, 冒泡排序, 简单选择排序, 折半查找
1.水仙花数
每位数的平方的和等于本身.
如100到999之间的水仙花数满足: 个位的平方+十位的平方+百位的平方 = 本身.
public class Test02{
public static void main(String[] args){
int g = 0;//存储个位
int s = 0;//存储十位
int b = 0;//存储百位
for(int i=100; i<999; i++)
{
g = i%10;//获取各位. 如365%10=5
//s = (i%100 - g) / 10;
s = i/10%10;//获取十位. 如365/10=36,36%10=6
//b = (i - s*10 - g) / 100;
b = i/100;//获取百位. 如365/100=3
if(g*g*g+s*s*s+b*b*b == i)
System.out.println(i);
}
}
}
2.ASCII码
数字0-9对应 - 48-57
字母A-Z对应 - 65-90
字母a-z对应 - 97-122
同一个字母的大小写相差32.
3.冒泡排序
从后往前(或从前往后)两两比较相邻元素, 若不满足排序规则就交换位置, 直到序列比较完, 至此一趟比较完毕.
//冒泡排序
public class BubbleSort{
public static void main(String[] args){
int[] arr = {9,6,5,4,8,7,1,2,3};
bubbleSort(arr);
} /*
冒泡排序
*/
public static void bubbleSort(int[] arr){
for(int i=0; i<arr.length-1; i++)
//外层循环控制每轮比较的次数
for(int j=arr.length-1; j>i; j--)
{//内层循环从后往前相邻两个数进行比较,较小的放在前面的位置
if(arr[j]<arr[j-1]){
int temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
} for(int i=0; i<arr.length; i++)
System.out.print(arr[i]+" ");
}
}
4.简单选择排序
第 i 趟循环在后面的n-i 个待排序的元素中选出最小(或最大)的关键字, 将其与序列的第 i 个元素交换位置.
/*
简单选择排序
*/ public class SelectSort{
public static void main(String[] args){
int[] arr = {7,4,5,8,9,6,1,2,3};
SelectSort(arr); } /*
定义方法,实现数组的选择排序
实现步骤:
1.嵌套循环实现排序
外循环控制一共比较了多少次
内循环可控制每次比较了多少个元素
2.判断元素的大小值
小值,存储到小的索引
*/
public static void SelectSort(int[] arr){
for(int i=0; i<arr.length-1; i++)
{
for(int j=i+1; j<arr.length; j++)
{
//数组的元素进行判断
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
} for(int i=0; i<arr.length; i++)
System.out.print(arr[i]+" ");
}
}
5.折半查找
又称二分查找.
将定值key与序列中间位置元素比较, 若查找成功,返回该元素的位置. 若不等, 则所需查找的元素只能在中间元素以外的前半部分或后半部分中. 根据大小关系确定在哪部分中继续进行折半查找. 直到查找成功, 或查找失败.
/*
折半查找(二分查找)
*/
import java.util.*;
public class BinarySearch{
public static void main(String[] args){
int[] arr = {5,6,7,8,17,18,25,27,33,35,37,57};//6,17,27,35,57
Scanner sc = new Scanner(System.in);
int s = sc.nextInt();
System.out.println(binarySearch(arr, s));
} //折半查找方法
//参数:有序表,要查找的值
//返回值:若找到,要查找的值在有序表的位置(索引)
//若未查找到,返回-1;
public static int binarySearch(int[] arr, int key){
int low = 0, high = arr.length-1, mid;
while(low<=high) //小于等于!!!
{
mid = (low+high)/2;
if(arr[mid]==key)
return mid;
else if(arr[mid]<key)
low = mid+1;
else
high = mid-1;
}
return -1;
}
}
Java学习笔记day07_琐碎知识_水仙花数_ASCII码_冒泡排序_简单选择排序_折半查找的更多相关文章
- JAVA学习笔记—review基本知识[反射与异常]
JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...
- java学习笔记1--基础知识
1.java数据类型 2.类之间的几种关系
- java学习笔记之基础知识
1.class不加修饰符默认default,只在当前包里能用. 2.构造函数前面的修饰符的作用类似class的,限制引用的权限. 3.java对象的创建其实就是类的实例化,类的实例化就是在堆上copy ...
- 冒泡排序与简单选择排序——Java实现
1.冒泡排序 1)原理说明:反复遍历要排序的数列,一次比較两个元素,假设他们的顺序错误就把他们交换过来.走訪数列的工作是反复地进行直到没有再须要交换,也就是说该数列已经排序完毕. 2)代码实现: pa ...
- 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试
20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...
- java学习笔记(2)注释、public lcass、class、标识符、字面值、变量
java学习笔记(1)中说过了java的一些基础知识,发展史,特点,编译和运行过程,配置环境变量等,接下来开始介绍java的语法等只是点 关于java源程序中的注释: *什么是注释?注释的作用是什么 ...
- 20145330第十周《Java学习笔记》
20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...
- 20145330第九周《Java学习笔记》
20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...
- 20145330第八周《Java学习笔记》
20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...
随机推荐
- C++面向对象类的实例题目十一
题目描述: 写一个程序计算三角形,正方形和圆形3种图形的面积 程序代码: #include<iostream> #include<cmath> #define PAI 3.14 ...
- Spring IOC容器解析及实现原理
最近一段时间,“容器”两个字一直萦绕在我的耳边,甚至是吃饭.睡觉的时候都在我脑子里蹦来蹦去的.随着这些天一次次的交流.讨论,对于容器的理解也逐渐加深.理论上的东西终归要落实到实践,今天就借助sprin ...
- CodeForces 658C Bear and Forgotten Tree 3 (构造)
题意:构造出一个 n 个结点,直径为 m,高度为 h 的树. 析:先构造高度,然后再构造直径,都全了,多余的边放到叶子上,注意直径为1的情况. 代码如下: #pragma comment(linker ...
- [转]Apple耳机兼容非Mac设置
转至:https://jingyan.baidu.com/article/6079ad0e99858228ff86db19.html 不兼容情况描述: 听音乐貌似只能听见伴奏的声音 解决方法: 第一种 ...
- [转]ORA-12516, TNS:listener could not find available handler with matching protocol stack
转至:http://blog.csdn.net/MichaelSrc/article/details/6760247 1.查看当前连接进程数 SQL>select count(*) from v ...
- Web开发秘方(WEB DEVELOPMENT RECIPES)[47.5MB] PDF扫描版
不借助插件怎样在移动设备上实现动画效果?怎样快速搭建HTML电子邮箱?怎样制作跨PC和移动设备显示的应用界面?怎样利用最新的JavaScript框架提高应用的响应速度?怎样有效利用CoffeeScri ...
- CSS+DIV网页样式布局实战从入门到精通 中文pdf扫描版
CSS+DIV网页样式布局实战从入门到精通通过精选案例引导读者深入学习,系统地介绍了利用CSS和DIV进行网页样式布局的相关知识和操作方法. 全书共21章.第1-5章主要介绍网页样式布局的基础知识,包 ...
- C#知识点总结系列:3、C#中Delegate和Event
一.Delegate委托可以理解为一个方法签名. 可以将方法作为另外一个方法的参数带入其中进行运算.在C#中我们有三种方式去创建委托,分别如下: public delegate void Print( ...
- .Net Core下基于NPOI对Excel、Word操作封装
本库进行了重写,如果需要请转移到下文查看: https://www.cnblogs.com/holdengong/p/10889780.html 框架与依赖 框架:.NET Standard 2.0 ...
- 正经学C#_变量与其数据类型:《c#入门经典》
这一篇总结以下变量与其数据类型. 变量:在c#中指 某一个值或者数据存储在变量中,并且可以取出或者查看.变量不仅仅是一种,也有很多种,细分而言就是类型.泛指就是变量.如果是要是使用变量就要 声明变量, ...