永发信息网

数组——JAVA程序设计

答案:2  悬赏:80  手机版
解决时间 2021-05-09 08:37

帮我设计两个JAVA程序,谢谢!

1、有关一维数组的程序,要求:数组长度为10,要实现冒泡排序。

2、有关二维数组的程序。

最佳答案

程序代码如下:(一维数组)


import java.util.*;
public class Array
{
public static void main(String args[])
{
int i,j;
int a[]={1,2,3,4,5,6,7,8,9,0};//10

//一维数组Buuble_sort
for(i=0;i<10;i++)
{
for(j=0;j<10-i-1;j++)
{
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
System.out.println("冒泡排序结果:");
for(i=0;i<10;i++)
System.out.print(a[i]+" ");
System.out.println();


}


}


程序运行结果:



全部回答

class ArrayIns { private long theArray[]; private int nElems; //-------------------- public ArrayIns(int max){ //构造方法,初始化成员属性。 theArray = new long[max]; nElems = 0; } //----------------------- public void insert(long value){ //insert方法用于给数组赋值,并用nElems记录数组元素的个数。 theArray[nElems] = value; nElems++; } //---------------------------- public void display(){ //display方法用于显示数组的所有元素到控制台。 System.out.println("A= "); for(int j=0;j<nElems;j++) System.out.print(theArray[j]+" "); System.out.println(""); } //------------------------------ public void quickSort(){ //ArrayIns对象调用quickSort方法可以为其成员属性theArray数组中的元素排序(从小到大) recQuickSort(0,nElems-1); //调用recQuickSort方法开始排序,初始范围从第一个到最后一个开始。 } //------------------------------- private void recQuickSort(int left,int right){ //recQuickSort方法进行数组元素的排序。left,right表示排序的范围. if(right-left <= 0) return; //如果right小于left,则第归返回。此处是第归的出口。 else { long pivot = theArray[right]; //每次把排序范围中的最后一个数作为排序时的参照数。 int partition = partitionIt(left,right,pivot); //调用prititionIt方法,参数列表中指明排序的范围和参照数,并将方法的返回值赋给pritition变量(用来指明下一

次排序时的范围。) //System.out.print(" "+1); //数字1代表第一次第归的调用。 recQuickSort(left,partition-1); //第归调用本方法,排序右范围由partition-1来决定。 //System.out.print(" "+2); //数字2代表第二次第归的调用。 recQuickSort(partition+1,right); //第归调用本方法,排序左范围由partition-1来决定。 } } //----------------------------------- private int partitionIt(int left,int right,long pivot){ //partitionIt方法完成left和right范围内元素间排序的具体过程。 int leftPtr = left-1; //leftPrt表示左标识位,从left-1开始。 int rightPtr = right; //rightPrt表示右表识位,到right。

while(true){//永真循环。 while(theArray[++leftPtr] < pivot); // 空循环,从leftPrt开始往rightPrt方向开始找一个比pivot大的数,用leftPtr记录元素的位置。 while(rightPtr>0 && theArray[--rightPtr]>pivot);//空循环,从rightPrt往leftPrt方向开始找一个比pivot小的数,用rightPrt记录元素的位置,并且rightPtr>0会

保证不会数组越界。 if(leftPtr >= rightPtr) //永真循环的出口,表示本次排序结束。 break;//跳出循环。 else swap(leftPtr,rightPtr);//将leftPtr和rightPtr所在位置的元素进行交换。 } swap(leftPtr,right); //调用swap方法。 return leftPtr; //将leftPtr返回到本方法被调用的位置。用来指明下一次排序时的范围. } //--------------------------------------------- private void swap(int dex1,int dex2){ //swap方法用来将数组中的两个元素进行交换,dex1和dex2分别表示两个数组元素的位置。 long temp = theArray[dex1]; //temp变量作为两个数组元素交换时的临时中转变量。 theArray[dex1] = theArray[dex2]; theArray[dex2] = temp; } }

//////////////////////////////////////////////////////////////////////////////////////

class QuickSortApp { public static void main(String[] args) { int maxSize = 10; //定义变量maxSize,并赋初值10. ArrayIns arr; arr = new ArrayIns(maxSize);//创建ArrayIns类的对象arr

for(int j=0;j<maxSize;j++){ long n = (int)(java.lang.Math.random()*99);//产生随机数。 arr.insert(n); //用insert方法为arr中的成员数组变量赋值。 } arr.display(); //用display方法显示arr中成员变量数组中的所有元素。 arr.quickSort(); //用quickSort方法为arr成员变量数组中的元素按从小到大排序。 arr.display(); //显示。 } }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
四角桌子砍了一个角还剩几个角
问问兑换Q币的好方法?
肩周炎做什么运动好,肩周炎适合做什么运动
冠名是什么意思?
乌托邦 什么意思?
你后悔了吗英语怎么说,阳光房的优点我知道,
谁有《是美男啊》中的“依然”这首歌的地址?
劲舞皇冠5.7什么消失
《80'后》高清电影下载地址
宝宝感冒能打预防针吗
工商管理英文怎么说,工商管理系用英语怎么说
QQ音速的5颗种子要钱吗
我的QQ音乐为什么收藏的歌都没了
怎么点思路英雄?
暗物质是什么
推荐资讯
寻仙鱼盆任务在哪里接
奥迪双钻迷你四驱车现在什么马达速度比较快
和平邨社区地址在哪,我要去那里办事
对一年级小朋友祝福语
九龙鞋城(美原店)这个地址在什么地方,我要处
cod7和孤岛危机2什么时候出?
2010年8月的时事政治
没有情人的人情人节要怎么才会快乐
网格计算的工作原理
3G时代到底是什么意思?
重庆一八鱼庄地址在哪,我要去那里办事
海口市琼山区童馨幼儿园我想知道这个在什么地
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?