当前位置: 代码迷 >> 综合 >> 归并算法的总结
  详细解决方案

归并算法的总结

热度:46   发布时间:2024-02-02 07:08:44.0

1.合并两个有序链表

struct  node{int data;struct node* next;
};
node* merge(node*head,node *head1,node *head2)
{node *temp=head;while(head1!=NULL&&head2!=NULL){if(head1->data<head2->data){temp->next=head1;temp=head1;head1=head1->next;}else{temp->next=head2;temp=head2;head2=head2->next;}}while(head1!=NULL){temp->next=head1;temp=head1;head1=head1->next;}while(head2!=NULL){temp->next=head2;temp=head2;head2=head2->next;}return temp;
}

2.合并两个有序数组

int merge(int* arr1,int len1,int* arr2,int len2,int *arr3){int len=len1+len2-1;int i=len1-1;int j=len2-1;while(i>=0&&j>=0){if(arr1[i]>arr2[j]){arr3[len--]=arr1[i--];}else{arr3[len--]=arr2[j--];}}while(i>=0){arr3[len--]=arr1[i--];}while(j>=0){arr3[len--]=arr2[j--];}return 0;
}

 

  相关解决方案