在乙個公升序排列的陣列中插入乙個數 (10分)
編寫函式fun,在乙個已按公升序排列的陣列中插入乙個數,插入後,陣列元素仍按公升序排列。
函式介面定義:
void
fun(
int a[n]
,int number)
;
其中 a 和 number 都是使用者傳入的引數。函式在乙個已按公升序排列的陣列 a 中插入乙個數 number ,插入後,陣列元素仍按公升序排列
裁判測試程式樣例:
#include
#define n 11
void
fun(
int a[n]
,int number)
;int
main()
;scanf
("%d"
,&number)
;printf
("the original array:\n");
for(i =
0; i < n -
1; i++
)printf
("%5d"
, a[i]);
printf
("\n");
fun(a, number)
;printf
("the result array:\n");
for(i =
0; i < n; i++
)printf
("%5d"
, a[i]);
printf
("\n");
return0;
}
輸入樣例:
6
輸出樣例:
the original array:12
4689
1215
149156
the result array:12
4668
91215149
156
個人答案如下:
void
fun(
int a[n]
,int number)
break;}
} a[m]
= number;
}
原理:
如果輸入的數number大於arr[i];
那麼從陣列arr最後一位arr[n]開始,將arr[n]的值賦給arr[n+1],同時n- -,直到n>i;
最後將number賦值給arr[i];
陣列的合併和公升序排列 31 下乙個排列
題目 實現獲取下乙個排列的函式,演算法需要將給定數字序列重新排列成字典序中下乙個更大的排列。如果不存在下乙個更大的排列,則將數字重新排列成最小的排列 即公升序排列 必須原地修改,只允許使用額外常數空間。以下是一些例子,輸入位於左側列,其相應輸出位於右側列。1,2,3 1,3,2 3,2,1 1,2,...
判斷乙個數字是否在公升序矩陣中
原題 該題目要求輸入二維向量形式的矩陣matrix以及數字target,要求判斷target是否在該矩陣裡。本題的特點在於矩陣為公升序,即從左到右,從上到下都是遞增的。利用這一特點,我們就可以跳過繁瑣的遍歷過程,使用簡便的方法來查詢到該元素。假設我們從開頭開始搜尋,那麼如果該元素小於目標,那就只需要...
面試題 將兩個公升序排列的鍊錶合併成乙個公升序鍊錶
將兩個公升序排列的鍊錶合併成乙個有序鍊錶 例如 head1 2 3 5 6 7 9 11 head2 2 4 5 7 9 合併之後結果為 head 2 2 3 4 5 5 6 7 7 9 9 11 如下 設head1和head2是兩個非空單向鍊錶,資料值有重複且公升序排序 將head1和head2合...