永发信息网

数组——JAVA程序设计

答案:2  悬赏:80  手机版
解决时间 2021-05-09 08:37
  • 提问者网友:我是女神我骄傲
  • 2021-05-08 21:27

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

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

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

最佳答案
  • 五星知识达人网友:患得患失的劫
  • 2021-05-08 22:20

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


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();


}


}


程序运行结果:



全部回答
  • 1楼网友:零点过十分
  • 2021-05-08 22:42

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(); //显示。 } }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯