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:注意无法使用构 ...
随机推荐
- DR客户端一直连接服务器....(6)
DR客户端一直连接服务器....(非未选择网卡)解决方法: 控制面板-->网络和 Internet-->网络连接,打开本地连接(以太网)属性,将IPV4协议前面的对勾去掉,重启DR 这样D ...
- Linux 查看设置系统语言
一.简介 在Linux的系统中经常碰到字符集导致的错误,本文总结了设置修改系统语言环境的方法步骤. 二.操作步骤 执行如下指令,查看当前使用的系统语言 echo $LANG 执行如下指令,查看系统安装 ...
- JButton ButtonClickTest
package com.example.test; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing. ...
- netty源码阅读之UnpooledByteBufAllocator
使用IDEA阅读源码Navigate下面的工具是个好东西 .可以帮助分析类的结构等 ByteBufAllocator主要用来生成三种ByteBuf :HeadBuffer,DirectBuffer,C ...
- C#和.NET Framework简介
注:本文大部分借鉴了<果壳中的C#5.0权威指南>,小编也想根据这本书好好梳理一下C#. 序言:C#是一种通用的类型安全且面向对象的编程语言.这种语言的目标是提高程序员的生产力,为此,需要 ...
- SpringMVC的理解
SpringMVC工作原理 SpringMvc是基于过滤器对servlet进行了封装的一个框架,我们使用的时候就是在web.xml文件中配置DispatcherServlet类:SpringMvc工作 ...
- easyui rowspan
第一种写法 columns: [ [ { field: 'depName', title: '部门', rowspan: 2, width: '100px', align: 'center' }, { ...
- Algorithms - Insertion sort
印象 图1 插入排序过程 思想 插入排序(Insertion Sort)的主要思想是不断地将待排序的元素插入到有序序列中,是有序序列不断地扩大,直至所有元素都被插入到有序序列中. 分析 时间复杂度: ...
- 关于php缓存技术一些见解
参考的网站[很重要] ①.模拟高并发: https://blog.csdn.net/yxwb1253587469/article/details/50572927 https://blog.csdn. ...
- C++期中考试
第一题1. 补足日期类实现,使得能够根据日期获取这是一年中第多少天.(12分) date.h #ifndef DATE_H #define DATE_H class Date { public: Da ...