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:注意无法使用构 ...
随机推荐
- 面试题: java面试经历 已看1 抢红包如何分配每个人抢到的钱 有用 难点的面试题
2018.03.09 深圳乐唯科技 我看了下感觉这公司貌似挺不错的,面试官人也挺好的,氛围应该很不错,可惜我实力不足,唉,接续努力,下面把面试中印象较深的三个问题写一下. 面试问题1:数据库删除重复数 ...
- linux 内核移植和根文件系统的制作
1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1 Linux版本 Linux内核的版本号 ...
- Luogu 3629 [APIO2010]巡逻
先考虑$k = 1$的情况,很明显每一条边都要被走两遍,而连成一个环之后,环上的每一条边都只要走一遍即可,所以我们使这个环的长度尽可能大,那么一棵树中最长的路径就是树的直径. 设直径的长度为$L$,答 ...
- c++调用shell命令
system()这个函数就不说了,不能读取返回值. #include<cstdio> int main() { FILE *fp; ]={}; fp=popen("ssh roo ...
- WordCount编码和测试
WordCount编码和测试 项目地址:https://github.com/handsomesnail/WordCount PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) ...
- Eclipse报错could not write metadata for '/remotesystemstempfiles'
1. windows-Preferences 中,在search中输入remote,取消选中reopen remote systems view to previous state'. 2. win ...
- 解决批处理命令执行完毕后自动关闭cmd窗口方法
问题描述: 日常开发工作中,为了节省多余操作导致浪费时间,我们经常会自己建一些批处理脚本文件(xx.bat),文件中包含我们需要执行的命令,有时候我们希望执行完毕后看一下执行的结果,但是窗口执行完毕后 ...
- 后台调js方法
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>btnSearch( ...
- C#之WinForm界面分辨率问题
在做上一个C#小工具的时候,当时为了处理界面最大化,分辨率问题,只是简单的用各种···Panle控价简单随意的处理控件的大小位置,字体什么的就随缘了(貌似有点不负责任啊,嘿嘿~). 所以在开始第二个C ...
- C#中的线程池使用(一)
1 线程池的概念 许多应用程序使用多个线程,但这些线程经常在休眠状态中耗费大量的时间来等待事件发生.其他线程可能进入休眠状态,并且仅定期被唤醒以轮询更改或更新状态信息,然后再次进入休眠状态.为了简化 ...