您的位置:

java和c的排序大战(排序函数java)

本文目录一览:

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面向过程的思想确实容易让初学者混淆,多少有点影响学习