【数据结构与算法】第二章练习题

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
", 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 }
原文地址:https://www.cnblogs.com/dream-to-pku/p/11436558.html