赞
踩
大家好,我是胡广,接下来把我所学习的东西分享给大家!
昨天主要做了关于int类型数组的四道练习题,不知道我写的代码有木有性能上的问题,还请大神指教
题目一:有一个整数数组,其中存放着序列1,3,5,7,9,11,13,15,17,19。请将该序列倒序存放并输出
上代码:
int[] a= {1,3,5,7,9,11,13,15,17,19};
for(int i=0;i<a.length;i++) {
if(i==0) {
System.out.print("运行结果:");
}
if(i==a.length-1) {
System.out.print(a[a.length-(i+1)]+"\n");
}else {
System.out.print(a[a.length-(i+1)]+",");
}
}
System.out.println("解析:循环数组从数组长度-(循环次数+1)开始输出\n");
运行截图:
题目二: 使用选择排序和冒泡排序对一自定义数组进行排序
上代码:
int[] b = {9,87,33,999,435,5,445,2,67,8};
int temp = 0;
循环输出自定义的数组
for (int i = 0; i < b.length; i++) {
if(i==0) {
System.out.print("自定义数组为:");
}
if(i==a.length-1) {
System.out.print(b[i]+"\n");
}else {
System.out.print(b[i]+",");
}
}
选择排序
System.out.println("选择排序(从小到大)");
for (int i = 0; i < b.length; i++) {
if(i==0) {
System.out.print("运行结果:");
}
for (int s =i; s < b.length; s++) {
if(b[i]>b[s]) {
temp=b[s];
b[s]=b[i];
b[i]=temp;
}
}
if(i==b.length-1) {
System.out.print(b[i]+"\n");
}else {
System.out.print(b[i]+",");
}
}
System.out.println("解析:大循环中的第i个元素的值与相同数组的所有元素作比较遇到比自己小的元素两方则调换位置继续往下循环\n");
冒泡排序
System.out.println("冒泡排序(从大到小)");
for (int i = 0; i < b.length; i++) {
if(i==0) {
System.out.print("运行结果:");
}
for (int s =i; s < b.length; s++) {
if(b[i]<b[s]) {
temp=b[s];
b[s]=b[i];
b[i]=temp;
}
}
if(i==b.length-1) {
System.out.print(b[i]+"\n");
}else {
System.out.print(b[i]+",");
}
}
System.out.println("解析:大循环中的第i个元素的值与相同数组的所有元素作比较遇到比自己大的元素两方则调换位置继续往下循环\n");
运行截图
题目三:先对数组{1,3,9,5,6,7,1,5,4,8}进行排序,然后二分查找法找出数组中的元素8,标出其排序后其下标的位置。
上代码:
int[] c = {1,3,9,5,6,7,1,5,4,8};
for(int i = 0;i<c.length;i++) {
if(i==0) {
System.out.print("运行结果:");
}
for(int j = i+1;j<c.length;j++) {
if(c[i]>=c[j]) {
temp=c[i];
c[i]=c[j];
c[j]=temp;
}
}
if(i==c.length-1) {
System.out.print(c[i]+"\n");
}else {
System.out.print(c[i]+",");
}
if(c[i]==8) {
System.out.print("(找到8啦,下标位置为"+i+"),");
}
}
System.out.println("解析:大循环中的第i个元素的值与相同数组的所有元素作比较遇到比自己小的元素两方则调换位置继续往下循环,if判断为8后并输入其下标\n");
题目四:编写一个程序,生成0-9之间的100个随机整数并且显示每一个数的个数
上代码:
创建一个随机数变量
Random random = new Random();
创建长度为100的int类型数组
int [] d =new int[100];
创建e变量接收随机数并在d数组的每次循环赋值给d[下标i]
int e = 0;
创建count变量用来计算100个0-9的随机数分别的个数
int count = 1;
for(int i =0;i<100;i++) {
e=random.nextInt(10);
if(i==0) {
System.out.println("产生的100随机数为:");
}
if(i%25==0&&i!=0) {
System.out.println();
}
if(i==99) {
d[i]=e;
System.out.println(e);
for (int j= 0; j < d.length; j++) {
for(int k = j+1;k<d.length;k++) {
if(d[j]>=d[k]) {
temp=d[j];
d[j]=d[k];
d[k]=temp;
}
}
/*
* if(j%25==0&&j!=0) { System.out.println(); } if(j==d.length-1) {
*
* System.out.print(d[j]+"\n"); }else { System.out.print(d[j]+","); }
*/
}
}else {
d[i]=e;
System.out.print(e+",");
}
}
System.out.println("计算结果为:");
for (int i = 0; i < d.length; i++) {
/*
* if(i==d.length-1) { System.out.print(d[i]); }else {
* System.out.print(d[i]+","); }
*/
if(i!=d.length-1) {
if(d[i]==d[i+1]) {
count++;
}else {
System.out.println("数字"+d[i]+"的个数为"+count+"个");
count=1;
}
}else {
System.out.println("数字"+d[i]+"的个数为"+count+"个");
}
}
System.out.println("解析:先产生100个0-9随机数存入数组,再把数组从小到大排序,再循环数组判断下标i与下标i+1的值是否相同(利用if判\n断来解决数组下标越界),相同则count+1(count默认为1),否则输出当前数组[下标]的数字+count个数,并把count赋值为0\n");
冒泡排序与选择排序我的理解估计有问题,嘻嘻
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。