1. 利用循环打印如下图形

*****
****
***
**
*
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 5;
while (i >= 0) {
for (int j = i; j > 0; j--)
System.out.print("*");
System.out.println();
i--;
}
} }

2.利用循环打印如下图形

*
**
***
****
*****
****
***
**
*
public class Main {

    public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 1;
while (i <= 5) {
for (int j = 0; j < i; j++)
System.out.print("*");
System.out.println();
i++;
}
i = 4;
while (i >= 0) {
for (int j = i; j > 0; j--)
System.out.print("*");
System.out.println();
i--;
}
} }

3.利用循环打印如下图形

 
public class Main {

    public static void main(String[] args) {
// TODO Auto-generated method stub
int k = 5;
for (int i = 1; i <= k; i++) {
for (int m = k - i; m > 0; m--)
System.out.print(" ");
for (int n = i; n > 0; n--)
System.out.print("* ");
System.out.println();
}
for (int i = k - 1; i >= 0; i--) {
for (int m = 1; m <= k - i; m++)
System.out.print(" ");
for (int n = i; n > 0; n--)
System.out.print("* ");
System.out.println();
}
} }

4.输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。

例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
public class Main {

    public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 1; i <= 9; i++)
for (int j = 0; j <= 9; j++)
for (int k = 0; k <= 9; k++) {
if (i * i * i + j * j * j + k * k * k == (i * 100 + j * 10 + k))
System.out.println(i * 100 + j * 10 + k);
}
}
}

5.

问题一:

从键盘读入个数为10个的整数,并判断读入的正数和负数的个数。
问题二:
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
funCount(sc.nextInt());
sc.close();
}
private static void funCount(int type) {
Scanner sc=new Scanner(System.in);
int i=0,plus=0,minus=0;
if(type==1){
System.out.println("输入10个数");
do{
if(sc.nextInt()>=0)plus++;
else
minus++;
i++;
}while(i<10);
System.out.println("正数的个数为:"+plus+"负数的个数为:"+minus);
}
else{
System.out.println("输入任意个数字,以0结束");
int ip;
while((ip=sc.nextInt())!=0){
if(ip>0)plus++;
else
minus++;
}
System.out.println("正数的个数为:"+plus+"负数的个数为:"+minus);
}
sc.close();
} }

6.100以内的所有质数

public class Main {

    public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 2; i <= 100; i++) {
int sum = 0;
if (i == 2 || i == 3)
System.out.println(i);
else {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
sum++;
break;
}
}
if (sum == 0)
System.out.println(i);
}
}
}
}

7.一个数如果恰好等于它的因子之和,这个数就称为"完数"。(因子:除去这个数本身正的约数)
例如6=1+2+3.编程 找出1000以内的所有完数

public class Main {

    public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 1; i <= 1000; i++) {
int sum = 0;
for (int j = 1; j <= i / 2; j++) {
if (i % j == 0)
sum += j;
}
if (sum == i)
System.out.println(i);
}
}
}

【以下可能用到数组,把排序的数可以提前初始化到一个int数组当中,如
int[] dataSort = new int[]{9, -16, 21, 23, -30, -49, 21, 30, 30}; 
访问其中每个数就利用下标进行,下标从0开始的,如  取dataSort[2],得到的值就是 21.

以下是把数据结构当中所学的基本排序算法都一一实现一下。
8.直接插入排序  10. 直接选择排序  11. 冒泡排序  12. Shell排序  13. 快速排序
第9-13题的排序每个同学们必做,14-17同学们根据自己的能力选做
【14. 折半插入排序  15. 堆排序   16. 归并排序   17.基数排序 】

 
注:这里采用随机数组,取值范围是在-100到100之间,每个排序方法定义一个类,保证使用方式上基本一致,后面三种排序方法写起来麻烦懒得写了。
public class Main {

    public static void main(String[] args) {
// TODO Auto-generated method stub
int dataSort[] = new int[10];
for (int i = 0; i < dataSort.length; i++) {
dataSort[i] = (int) (Math.random() * 200) - 100;
}
int dataBackup[] = dataSort;// 备份数组保证每次排序的初始内容一样 dataSort = dataBackup;
StraightInsertionSort sis = new StraightInsertionSort(dataSort);// 直接插入排序
printData(sis.TAG, sis.data); dataSort = dataBackup;
StraightSelectSort sss = new StraightSelectSort(dataSort);// 直接选择排序
printData(sss.TAG, sss.data); dataSort = dataBackup;
BubbleSort bbs = new BubbleSort(dataSort);// 冒泡排序
printData(bbs.TAG, bbs.data); dataSort = dataBackup;
ShellSort ss = new ShellSort(dataSort);// Shell排序
printData(ss.TAG, ss.data); dataSort = dataBackup;
QuickSort qs = new QuickSort(dataSort);
printData(qs.TAG, qs.data); dataSort = dataBackup;
BinarySort bs = new BinarySort(dataSort);// 折半插入排序
printData(bs.TAG, bs.data);
} private static void printData(String a, int[] d) {
// TODO Auto-generated method stub
System.out.printf("%-15s\t", new Object[] { a });
System.out.print("-->\t");
for (int i = 0; i < d.length; i++) {
System.out.print(d[i] + "\t");
}
System.out.println();
}
} public class StraightInsertionSort {
String TAG="直接插入排序";
int data[];
public StraightInsertionSort(int data[]){
this.data=data;
sort(data);
}
private void sort(int[] d) {
// TODO Auto-generated method stub
int temp;// 存放最小元素
for (int i = 1; i < d.length; i++) {
int j = i - 1;
temp = d[i];
while (temp < d[j]) {
d[j+1] = d[j];
j--;
if (j < 0)
break;
}
d[j + 1] = temp;
}
}
} public class StraightSelectSort {
String TAG="直接选择排序";
int data[];
public StraightSelectSort(int data[]){
this.data=data;
sort(data);
}
private void sort(int[] d) {
// TODO Auto-generated method stub
int temp;// 临时变量
for (int i = 1; i < d.length; i++) {
int k = i;// 记录最小元素位置
for (int j = i + 1; j < d.length; j++) {
if (d[j] < d[k])
k = j;
if (k != i) {
temp = d[k];
d[k] = d[i];
d[i] = temp;
}
}
}
}
} public class BubbleSort {
String TAG = "冒泡排序";
int data[]; public BubbleSort(int data[]) {
this.data = data;
sort(data);
} private void sort(int[] d) {
// TODO Auto-generated method stub
boolean hasSort = true;// 判断是否进行排序了的标识
int i = 0;
while (i < d.length && hasSort == true) {
hasSort = false;
for (int j = 0; j < d.length - 1; j++) {
if (d[j + 1] < d[j]) {
int temp = d[j];
d[j] = d[j + 1];
d[j + 1] = temp;
hasSort = true;
}
}
i++;
}
}
} public class ShellSort {
String TAG="Shell排序";
int data[];
public ShellSort(int data[]){
this.data=data;
sort(data);
}
private void sort(int[] d) {
// TODO Auto-generated method stub
for (int t = d.length / 2; t >= 1; t = t / 2) {
for (int i = t ; i < d.length; i++) {
int temp = d[i];
int j;
for (j = i - t; j >= 0 && temp < d[j]; j = j - t) {
d[j + t] = d[j];
}
d[j + t] = temp;
}
}
}
} public class QuickSort {
String TAG="快速排序";
int data[];
public QuickSort(int data[]){
this.data=data;
sort(data,0,data.length-1);
}
private void sort(int[] d, int left, int right) {
// TODO Auto-generated method stub
if(left>=right)return;
int temp=0;
temp=d[left];
int l= left, r = right;
while (l < r) {
while (l<r&&d[r] > temp)
r--;
if(l<r)d[l++]=d[r];
while (l<r&&d[l] < temp)
l++;
if(l<r)d[r--]=d[l];
}
d[l]=temp;
sort(d, left, l-1);
sort(d, l+1, right);
}
}
public class BinarySort {
String TAG = "折半插入排序";
int data[]; public BinarySort(int data[]) {
this.data = data;
sort(data);
} private void sort(int[] d) {
// TODO Auto-generated method stub
for (int i = 1; i < d.length; i++) {
int temp = d[i];
int left = 0, right = i - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (d[i] < d[mid])
right = mid - 1;
else
left = mid + 1;
}
for (int j = i - 1; j >= left; j--)
d[j + 1] = d[j];
d[left] = temp;
}
}
}

java小程序整理及排序算法的更多相关文章

  1. 程序兵法:Java String 源码的排序算法(一)

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 这是泥瓦匠的第103篇原创 <程序兵法:Java Str ...

  2. Java基础复习笔记基本排序算法

    Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...

  3. Java实现经典七大经典排序算法

    利用Java语言实现七大经典排序算法:冒泡排序.选择排序.插入排序.希尔排序.堆排序.归并排序以及快速排序. 分类 类别 算法 插入排序类 插入排序.希尔排序 选择排序类 选择排序.堆排序 交换排序类 ...

  4. 输出多行字符的一个简单JAVA小程序

    public class JAVA { public static void main(String[] args) { System.out.println("-------------- ...

  5. 浏览器兼容java小程序配置说明

    最近在使用的一个web应用系统是内嵌了java小程序,遇到了各种浏览器兼容性问题,现梳理如下: 1.通过以下链接检测当前电脑是否已经安装有java https://java.com/zh_CN/dow ...

  6. 20162311 编写Android程序测试查找排序算法

    20162311 编写Android程序测试查找排序算法 一.设置图形界面 因为是测试查找和排序算法,所以先要有一个目标数组.为了得到一个目标数组,我设置一个EditText和一个Button来添加数 ...

  7. 框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口

    框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口. 与Frame不同,Applet是在网页中显示的,也可以通过添加Panel进行组件布局. package TomAwt; im ...

  8. 小程序 之使用HMACSHA1算法加密报文

    首先说说我们前端常用的加密技术, 我们常用的加密技术有:如MD5加密,base64加密 今天要说的是HMACSHA1加密技术 先介绍下什么是SHA1算法, 安全哈希算法(Secure Hash Alg ...

  9. 微信小程序通讯录字母排序

    微信小程序通讯录 字母排序效果: demo地址:https://github.com/PeachCoder/wechat-contacts

随机推荐

  1. .net中如何使用cookie

    比如建立一个名为aspcn,值为灌水小鱼的cookie HttpCookie cookie = new HttpCookie["aspcn"];cookie.Value = &qu ...

  2. E: 软件包*需要重新安装,但是我无法找到相应的安装文件。(ubuntu14.04)

    ubuntu安装搜狗输入法官方下载的安装包时,电脑有点卡我给强制关闭了,然后重启打开软件管理中心,直接闪退! 之后不能安装任何软件(包括命令). 显示: E: 软件包Sougou Pinyin需要重新 ...

  3. Android 通过Base64上传图片到服务器

    之前做上传图片是采用HttpServlet上传,不过用了一下Base64上传图片后,感觉比HttpServlet方便很多,大家也可以跟着尝试一下. 前台图片处理:(传Bitmap对象即可) /** * ...

  4. Speed-BI数据分析案例:2016年8月汽车销量排行榜

    据中国汽车工业协会统计分析,2016年8月,乘用车市场表现较好,当月销量环比和同比均呈较快增长.1-8月,乘用车销量总体呈稳定增长,增幅比1-7月继续小幅提升.      8月,乘用车共销售179.5 ...

  5. 前端实战——照片墙gallery的实现

    对应的html代码 <!doctype html> <html lang="zh-hans"> <head> <meta charset= ...

  6. 导出iPhone中安装的APP的iPA文件

    1.让iPhone连接电脑,打开iTunes,选择本电脑,然后点立即备份. 2.完成上一步的操作之后,选择应用,在iTunes中就会列出你从App Store中下载的应用,自己连接真机调试的应用是没有 ...

  7. python gzip,bz2学习

    一.gzip import gzip 1.解压缩 a = gzip.open('a.tar.gz') b = open('a.tar','wb') b.write(a.read()) a.close( ...

  8. Linux14.04安装JDK

    1.下载jdk-7u5-linux-x64.tar.gz, 2.解压 一版有人会安装在e有人会安装在tc/local,etc/lib 或者opt等目录下. 安装目录:etc/local 解压到etc/ ...

  9. org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map

    mybatis 出现这个错误是 参数类型写错了.parameterType 写成了parameterMap

  10. java collections读书笔记(11) Lists

    继续这个系列,好久没学习了,懒惰呀. Set接口,实际上是collection 类别中最简单的一个接口,因为它并没有比Collection 接口增加任何的内容,相对而言,大家可能更喜欢List接口和它 ...