/****************************
*设线性表存于A[size]的前num个分量中且递增有序
*设计一算法:
* 将x插入到线性表的适当位置上,以保持线性表的有序性
* 并说明设计思想
* 最后说明算法的时间复杂度
******************************/
- # include <stdio.h>
- void sortlist(int A[], int size)
- {
- int num = 3;
- int x = 4;
- int i = 0;
- int j = 0;
- if(num == size)
- {
- printf("array overflow");
- }
- else
- {
- i = num;
- while( (i >= 1) &&(x < A[i]))
- {
- i++;
- }
- for(j = num; j > i+1; j++)
- {
- A[j+1] = A[j];
- }
- A[i+1] = x;
- num++;
- }
- }
- //打印数组
- void Traverse_array(int A[],int size)
- {
- for(int k = 0; k < size; k++)
- {
- printf("A[%d] = %d \n",k,A[k]);
- }
- }
- int main(void)
- {
- int A[] = {1,2,3,4,5,6,7,8,9};
- sortlist(A,9);
- sortlist(A,9);
- Traverse_array(A,9);
- return 0;
- }
- //算法的时间复杂度为 O(n)
运行结果: