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:注意无法使用构 ...
随机推荐
- AbstractFactoryPattern(23种设计模式之一)
设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大 ...
- JavaPersistenceWithHibernate第二版笔记-第六章-Mapping inheritance-007Inheritance of embeddable classes(@MappedSuperclass、@Embeddable、@AttributeOverrides、、)
一.结构 二.代码 1. package org.jpwh.model.inheritance.embeddable; import javax.persistence.MappedSuperclas ...
- thinkphp目录解析
- 多线程学习-基础(十三)(学习参考·网摘) ArrayBlockingQueue源代碼解析(base jdk 1.8)
前记: 这个得首先声明一下,以下大部分内容均参考于:https://blog.csdn.net/wx_vampire/article/details/79585794,本随笔只作为学习作用,侵权删! ...
- Osmotic Study ----Mysql Safe
Thanks Ichunqiu company.I have a chance to learn some lessons for free in five days till 10.1 this y ...
- HTTP 协议 -- 报头信息
报头 每一个报头都是由 [名称 + ":" + 空格 + 值 + <CR><LF>] 组成.有四种不同类型的报头: 通用报头:可用于请求,也可以用于响应,它 ...
- C++: I/O流详解(二)——输入输出格式控制
一.格式控制 ios提供直接设置标志字的控制格式函数 iostream和iomanip库还提供了一批控制符简化I/O格式化操作 状态标志 值 含义 输入/输出 skipws 0X0001 跳过输入中的 ...
- javascript 取掉空格自定义函数
js 取掉空格自定义函数 //取掉左右空格: function trim(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); } // ...
- oracle如何去除字符串中的重复字符
create or replace function remove_rame_string(oldStr varchar2, sign varchar2) return varchar2 is /** ...
- ubuntu部署django详细教程
教程使用的软件版本:Ubuntu 18.04.1 LTS,django2.0,Python 3.6.5.nginx-1.13.7.uWSGI (2.0.17.1),Ubuntu是纯净的,全新的.下面我 ...