本文目录一览:
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 (left > right)
return;
temp = a[left];
i = left;
j = right;
while (i < j) {
while (a[j] <= temp && j > i) {
j--;
}
a[i] = a[j];
while (a[i] >= temp && j > i) {
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; i < 10; 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(N>0){
i=x,j=y ;
处理当前矩阵最外围最上行;
处理当前矩阵最外围最右列;
处理当前矩阵最外围最下行;
处理当前矩阵最外围最左列;
N-=2;//矩阵缩小,继续按以上方法处理内部矩阵
x++;y++;
}
java与c是否有先后顺序和互相影响
JAVA和C从语言来说应该没有直接的影响C可能更接近底层一些,JAVA可能软件设计设计的多一些。不过实际来说,JAVA面向对象的编程思想和C面向过程的思想确实容易让初学者混淆,多少有点影响学习。