数组算法(一)

/****************************
*设线性表存于A[size]的前num个分量中且递增有序
*设计一算法:
*  将x插入到线性表的适当位置上,以保持线性表的有序性
*  并说明设计思想
*  最后说明算法的时间复杂度
******************************/
 
 
  
  1. # include <stdio.h> 
  2.  
  3. void sortlist(int A[], int size) 
  4.     int num = 3; 
  5.     int x = 4; 
  6.     int i = 0; 
  7.     int j = 0; 
  8.  
  9.     if(num == size) 
  10.     { 
  11.         printf("array overflow"); 
  12.     } 
  13.     else 
  14.     { 
  15.         i = num; 
  16.         while( (i >= 1) &&(x < A[i])) 
  17.         { 
  18.             i++; 
  19.         } 
  20.         for(j = num; j > i+1; j++) 
  21.         { 
  22.                 A[j+1] = A[j]; 
  23.         } 
  24.         A[i+1] = x; 
  25.         num++; 
  26.     } 
  27. //打印数组 
  28. void Traverse_array(int A[],int size) 
  29.     for(int k = 0; k < size; k++) 
  30.     { 
  31.         printf("A[%d] = %d \n",k,A[k]); 
  32.     } 
  33.  
  34. int main(void
  35.     int A[] = {1,2,3,4,5,6,7,8,9}; 
  36.      
  37.     sortlist(A,9); 
  38.     sortlist(A,9); 
  39.     Traverse_array(A,9); 
  40.  
  41.     return 0; 
  42.  
  43. //算法的时间复杂度为 O(n) 
运行结果:
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值