1、社顺序表用数组A[]表示,表中元素存储在数组中下标0~m+n-1的范围内,前m个元素递增有序,后n个元素递增有序,设计算法使得顺序表有序
1)算法基本思想
2)算法描述
3)时间和空间复杂度
答:
1 #include <stdio.h> 2 3 4 void insertElem(int A[],int m,int n) { 5 6 int i, j; 7 int temp; 8 for (i = m; i < m + n;i++) { 9 temp = A[i]; 10 for (j = i - 1; j >= 0 && temp < A[j];--j) { 11 A[j + 1] = A[j];//元素后移,以便腾出一个位置插入temp 12 } 13 A[j + 1] = temp;//插入temp,由于for循环后j前多了一位,因此在j+1除插入 14 } 15 } 16 17 void showElem(int A[],int n) { 18 for (int i = 0; i < n;i++) { 19 printf("%d:=%d\n", i, A[i]); 20 } 21 } 22 void main() { 23 int A[] = { 1,3 ,5,2,4 }; 24 showElem(A, 5); 25 insertElem(A, 3, 2); 26 showElem(A, 5); 27 }