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. Apache使用简介

    Apache使用简介 1.全局配置配置信 1) 配置持久连接 KeepAlive <On|Off>             #是否开启持久连接功能 MaxKeepAliveRequest ...

  2. kinect数据读取

    http://blog.csdn.net/timebomb/article/details/7169372

  3. FreeMarker惯用内置函数

    1.sequence?first 返回sequence的第一个值. 2.sequence?last 返回sequence的最后一个值. 3.sequence?reverse 将sequence的现有顺 ...

  4. IIS URL Rewrite redirect from one Domain to another

    IIS URL Rewrite enables Web administrators to create powerful rules to implement URLs that are easie ...

  5. javascript 作用域

    作用域:可以理解为在一定范围内对数据进行读.写操作 域:空间.范围.区域... 作用:读.写 浏览器内部,可以暂时把专门用来读取JS的那部分叫做“js解析器”, “js解析器”工作流程: “js解析器 ...

  6. 一款不错的多选下拉列表利器—— Ext.ux.form.SuperBoxSelect

    在B/S系统中,下拉列表(select/dropdownlist/combobox)的应用随处可见,为了增强用户体验,开发人员也常常会做一些带联想功能的下拉列表, 特别是数据项比较多的时候,用户筛选起 ...

  7. 从零开始攻略PHP(6)——代码重用与函数编写的一些注意事项

    一个新的项目是这样创建的:它将已有的可重新利用的组件进行组合,并将新的开发难度降低到最小. 代码重用的好处:降低成本.提升可靠性和一致性. 1.使用require()和include()函数 使用一条 ...

  8. Leetcode: Convert a Number to Hexadecimal

    Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two's compl ...

  9. 设置 BitmapData 没填充部分为透明色

    默认 BitmapData 是以白色填充的 在初始化时,设定上每3,4个参数即可透明: new BitmapData(w,h,true,0) 第4个参数要为0

  10. eclipse JAVA 类元素 快速添加set和get方法

    鼠标在代码窗口,鼠标右键 然后选择如下图 然后在下面图中,选择需要个类的元素添加的set和get 选择好了点击OK,这样eclipse就自动生成get和set方法