1樓:匿名使用者
補充下一樓的,
演算法1.i 指向線性表頭,j指向線性表尾,a為線性表2.如果a[i]>0 && a[j]<0 swap(a[i],a[j])
如果a[j]>0 j--
如果a[i]<0 i++
3.如果i == j 跳出迴圈 否則執行2void swap(int * a,int* b)#include
int main (void)
if (a[i]<0)
i++;
if (a[j]>0)
j--;
}for (k = 0;k<6;k++)
printf ("%d ",a[k]);
return 0;}
2樓:匿名使用者
將第一個負數和最後一個正數對調就ok了
假設資料存在陣列中,共有n個數
void f(int *a,int n)}}
3樓:
#include
#define n 10
void main()
;i=0;j=n-1;
while(i0)j--;
if(i }for(i=0;i printf("%d ",a[i]); printf("\n");} 1.分解第二個線性表,按照大小進行插入操作2.先不管大小接合再排序 當然如果單連結串列的形式是建議插入的,因為排序的操作比插入多的多可以設一臨時變數p指向2線性表的尾端 逐個插入1號表,注意判斷插入的位置是否頭尾,需要做特殊處理 linkedlistlist1 new linkedlist link... 線性表是鏈式儲存結構,用連結串列實現,使用空間多,且合理。而順序表基本上是用陣列實現的,使用空間有限,會造成浪費。 順序表 靜態分配。程式執行之前必須明確規定儲存規模。隨機存取結構,主要是進行查詢,很少做插入和刪除操作時順序表。線性表 動態分配。只要記憶體空間尚有空閒,就不會產生溢位。從頭指標起順著... 9x8x7x6x5x4x3x2x1 362880 氣泡排序演算法不算優化,但是易於理解。排在第一位的數依次和排在後面的數比較,如果後者較大,則兩個數交換位置,這樣,在比較過的數裡,位於第一的數總是最大的 如果是10個數,那第一輪要比9次,即位於第1的數和位於第2 3 4 5 6 7 8 9 10位的...線性表的操作
線性表和順序表的區別,C語言中的線性表 順序表和連結串列到底是什麼關係?
對長度為10的線性表進行氣泡排序,最壞情況下需要比較的次數為