本文目錄一覽:
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面向過程的思想確實容易讓初學者混淆,多少有點影響學習
原創文章,作者:LGWPD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329601.html