十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这就是方法的重复利用性了~~~~
创新互联是一家成都网站设计、网站制作,提供网页设计,网站设计,网站制作,建网站,专业公司,网站开发公司,2013年至今是互联行业建设者,服务者。以提升客户品牌价值为核心业务,全程参与项目的网站策划设计制作,前端开发,后台程序制作以及后期项目运营并提出专业建议和思路。
selectSort是一个排序的方法
printArray是一个打印的方法
如果像你说的在selectSort里打印就好了,那我以后写了另一个排序的模式,那我岂不是要重新写打印方法了??
所以这里把打印方法拿出来单独写,是为了以后可持续利用。也是为了让逻辑更明确,我把你的代码重新编排了下。你应该更明确。
package com.wm;
public class A {
public static void printArray(int[] arr)
{
System.out.print("[");
for(int x=0; xarr.length; x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}
public static void main(String[] args)
{
int[] arr = {34,19,11,109,3,56};
selectSort(arr);//调用排序方法
printArray(arr);//打印出排序的结果
}
public static void selectSort(int[] arr)
{
for(int x=0; xarr.length-1; x++)
{
for(int y=x+1; yarr.length; y++)
{
if(arr[x]arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
}
我编译时报了
p185_6.java:50: 警告: catch 子句无法访问
catch(IOException e2){System.out.println("文件读写错");}
改正后文件可以在页面内显示,就是位置有点问题。
可以把add(jta,BorderLayout.SOUTH);改成add(jta,BorderLayout.CENTER);
如果想使用滚动条,可以把JTextArea放在JScrollPane里,然后再放在JFrame中。
add(jta,BorderLayout.SOUTH);改成add(new JScrollPane(jta),BorderLayout.CENTER);
如果不管排序的话递归 循环都能实现这个 给你一个分别用递归和循环实现的例子
import java.util.Arrays;
public class TestArray {
public static void main(String[] args) {
int[] a = { 1, 2, 3, 4, 5, 6, 7, 8};
System.out.println("***********循环*************");
ergodicArray(a, 6);
System.out.println("***********递归*************");
recursionArray(a,new int[6],0,0);
}
//递归
public static void recursionArray(int[] a,int[] b,int start,int index){
if(b.lengtha.length)
throw new RuntimeException("长度错误");
else{
if(indexb.length){
int[] c=b.clone();
for(int i=start;ia.length;i++){
//System.out.println("i:"+i+" index:"+index);
c[index]=a[i];
recursionArray(a,c,i+1,index+1);
}
}else
System.out.println(Arrays.toString(b));
}
}
//循环
public static void ergodicArray(int[] a,int length){
if(lengtha.length)
throw new RuntimeException("长度错误");
else{
int[] b=new int[length];
for(int i=0;ilength;i++)
b[i]=i;
ergodicArray(a,b);
}
}
public static void ergodicArray(int[] a, int[] b) {
while (b[0] = (a.length - b.length)) {
if (b[b.length - 1] a.length) {
for (int i = 0; i b.length; i++) {
System.out.print(a[b[i]]);
if(ib.length-1)
System.out.print(',');
}
System.out.println();
++b[b.length - 1];
} else {
int j = b.length - 1;
while (j = 0) {
if (b[j] != a.length - (b.length - j) + 1) {
// j--;
break;
} else
j--;
}
if ((b[0] == (a.length - b.length - 1) || b[j] = (a.length - b.length + j))) {
int t = 0;
for (int i = j; i b.length; i++) {
if (i == j) {
b[i]++;
} else {
b[i] = b[i - 1] + 1;
}
}
}
}
}
}
因为 j 的初始化值是 i
i = 0的时候 遍历从0号元素开始 找到个最小的 把这个最小值跟0号交换
i = 1的时候 遍历从1号元素开始 找到后面的最小值 跟 1号 交换
“for循环j”的作用就是找到 最小值的位置和值
“for循环i”的作用是运行i次交换最小值的动作
自然从小到大都排完了
首先设n=50(代表你已经有50个冰糕,50个标签)
i=n/3;(n个标签能兑换的冰糕)
i1=n%3;(余数)
if(i10)
if(i1=1)
{这里就只需要买一个冰糕;你就可以有两个标签,你在借一个冰糕吃了就有三个标签,再把三个标签还给boss}
if(i1=2)
{有两个标签,你在借一个冰糕吃了就有三个标签,再把三个标签还给boss}
最后用初始值n+i+1