琐碎知识: 水仙花数, 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码_冒泡排序_简单选择排序_折半查找的更多相关文章

  1. JAVA学习笔记—review基本知识[反射与异常]

    JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...

  2. java学习笔记1--基础知识

    1.java数据类型 2.类之间的几种关系

  3. java学习笔记之基础知识

    1.class不加修饰符默认default,只在当前包里能用. 2.构造函数前面的修饰符的作用类似class的,限制引用的权限. 3.java对象的创建其实就是类的实例化,类的实例化就是在堆上copy ...

  4. 冒泡排序与简单选择排序——Java实现

    1.冒泡排序 1)原理说明:反复遍历要排序的数列,一次比較两个元素,假设他们的顺序错误就把他们交换过来.走訪数列的工作是反复地进行直到没有再须要交换,也就是说该数列已经排序完毕. 2)代码实现: pa ...

  5. 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试

    20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...

  6. java学习笔记(2)注释、public lcass、class、标识符、字面值、变量

    java学习笔记(1)中说过了java的一些基础知识,发展史,特点,编译和运行过程,配置环境变量等,接下来开始介绍java的语法等只是点  关于java源程序中的注释: *什么是注释?注释的作用是什么 ...

  7. 20145330第十周《Java学习笔记》

    20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...

  8. 20145330第九周《Java学习笔记》

    20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...

  9. 20145330第八周《Java学习笔记》

    20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...

随机推荐

  1. dedecms出错此问题:Cannot_modify_header_information_-_headers_already_sent_by_(output_started_at

    修改php.ini文件,php.ini配置问题,解决办法:打开 php.ini 然后把 output_buffering 设为 on ,重启iis或apache即可. 出现以上问题可能是由于更换空间, ...

  2. nodejs读文件

    1.异步读取文件:var fs= require('fs'); // 从文件系统中读取请求的文件内容 fs.readFile(pathname.substr(1), function (err, da ...

  3. 利用JavaScriptCore实现简单的功能(阶乘)

    #import "RootViewController.h" #import <JavaScriptCore/JavaScriptCore.h> @interface ...

  4. 【摘自张宴的"实战:Nginx"】Nginx的server指令

    server 语法:server name[parameters] 默认值:none 使用环境:upstream 该指令用于指定后端服务器的名称和参数.服务器的名称可以是一个域名.一个IP地址.端口号 ...

  5. Fiddler的Request Builder(Composer)模拟发送POST请求

    传json格式: Parsed写: User-Agent: Fiddler Host: localhost:1455 Content-Type: application/json; charset=u ...

  6. GPG入门 - 练习笔记

     GPG入门练习笔记  参考阮一峰的GPG入门教程http://www.ruanyifeng.com/blog/2013/07/gpg.html 1.加密     1)刘言机器: 用王老师公钥加密gp ...

  7. .replace(/-/g,"/")的用法

    /-/g正则表达式   g  代表  global    全部替换 var str1 ="2012-08-12 23:13"; str1 = str1.replace(/-/g,& ...

  8. SQL Server相关知识和经验的碎片化记录

    1.在向服务器发送请求时发生传输级错误 在向服务器发送请求时发生传输级错误. (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接.) ---> Sy ...

  9. 在ubuntu 14.04 编译android 2.3.1 错误解决办法

    首先必须降低gcc版本: sudo apt-get install gcc-4.4sudo apt-get install g++-4.4sudo rm -rf /usr/bin/gcc /usr/b ...

  10. 分层最短路-2018南京网赛L

    大概题意: 题意:N个点,M条带权有向边,求将K条边权值变为0的情况下,从点1到点N的最短路. 拓展:可以改变K条边的权值为x 做法:把每个点拆成k个点,分别表示还能使用多少次机会,构造新图. 实际写 ...