[关闭]
@chawuciren 2018-11-14T13:46:23.000000Z 字数 590 阅读 510

算法导论阅读笔记1-2Getting Started

未分类


插入排序

归并排序

用数组实现

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. void merge(int array[],int n,int a[],int l1,int b[],int l2);
  4. int main(){
  5. int a[3]={1,3,5};
  6. int b[4]={2,4,6,8};
  7. int array[7]={0};//接收结果的数组
  8. merge(array,7,a,3,b,4);
  9. for(int i=0;i<7;i++){
  10. printf("%d ",array[i]);
  11. }
  12. return 0;
  13. }
  14. void merge(int array[],int n,int a[],int l1,int b[],int l2){
  15. int j=0;
  16. int i=0;
  17. int k=0;
  18. n=l1+l2;
  19. while(i!=l1&&j!=l2){//当两个数组都不为空时
  20. if(a[i]>b[j]){
  21. array[k]=b[j];
  22. j+=1;
  23. k+=1;
  24. }
  25. else{
  26. array[k]=a[i];
  27. i+=1;
  28. k+=1;
  29. }
  30. }
  31. if(i<l1){//当b为空,将a数组余下的元素接在array后
  32. for(int h=i;h<l1;h++){
  33. array[k]=a[h];
  34. k+=1;
  35. }
  36. }
  37. if(j<l2){//当a为空
  38. for(int h=j;h<l2;h++){
  39. array[k]=b[h];
  40. k+=1;
  41. }
  42. }
  43. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注