本文目录一览:
C语言的问题,或者用JAVA编程 快速排序的问题
按照你的要求编写的快速排序从大到小排序的Java程序如下
public class QuickSort {
private static final int[]a=new int[10];
public void QS(int left,int right){
int i,j,t,temp;
if(leftright)
return;
temp=a[left];
i=left;
j=right;
while(ij){
while(a[j]=temp ji){
j--;
}
a[i] = a[j];
while(a[i]=temp ji){
i++;
}
a[j] = a[i];
}
a[i]=temp;
QS(left,i-1);
QS(i+1,right);
}
public static void main(String[] args) {
int i;
for(i=0;i10;i++){
a[i]=(int)(Math.random()*100)+1;
System.out.print(a[i]+" ");
}
System.out.println();
QuickSort qs=new QuickSort();
qs.QS(0,9);
for(i=0;i=9;i++)
System.out.print(a[i]+" ");
System.out.println();
}
}
运行结果
82 84 8 59 57 7 93 98 3 83
98 93 84 83 82 59 57 8 7 3
用C、C++或者JAVA对一组数字排序的问题
说实话,你一分不给实在有点过份了,难怪没人帮你回答。
希望你多加点分数,回答了这么多
这个实际上就是一个N*N的矩阵,值是内螺旋递增的,你从1开始按值得递增画画看就知道了。
对于维数为N的矩阵这个问题可以分解为两部
第一步只看最外圈,这个一个N维矩阵最外圈有4N-4个数,这是最开始的递增序列,如果N=3,可以看到有这样四步,最上面的一行1~2,最右边的一列3~4,最下面的一行5~6,最左边的一列7~8,这样一圈下来就形成了一个最外围的矩形。
第二步同第一步,只不过第二次在开始只不过是从9开始了
伪代码为:
x=0,y=0,//矩阵的初始位置为0,0,
N,//N为矩阵的维数
sta=1 //初始值为1,
while(N0)
{
i=x,j=y ;
处理当前矩阵最外围最上行;
处理当前矩阵最外围最右列;
处理当前矩阵最外围最下行;
处理当前矩阵最外围最左列;
N-=2;//矩阵缩小,继续按以上方法处理内部矩阵
x++;y++;
}
java与c是否有先后顺序和互相影响
JAVA和C从语言来说应该没有直接的影响C可能更接近底层一些,JAVA可能软件设计设计的多一些。不过实际来说,JAVA面向对象的编程思想和C面向过程的思想确实容易让初学者混淆,多少有点影响学习