数据结构(排序三)
Posted tianliang-2000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(排序三)相关的知识,希望对你有一定的参考价值。
归并排序
利用归并的思想实现的排序方法
二路归并排序原理
- 假设初始序列有n个记录,则可以看成n个有序的子序列,每个子序列的长度为1
- 然后两两归并,得到┌n/2┐个长度为2或1的有序子序列;再次两两归并,...
- 如此重复,直到得到一个长度为n的有序序列为止
1 #include <stdio.h> 2 #define MAXSIZE 15 3 4 void sort(int *s1,int n,int *s2,int m){ 5 int i,j,k=0; 6 int temp[MAXSIZE]; 7 for(i=0,j=0;i<n && j<m;){ 8 if(s1[i]<s2[j]) 9 temp[k++]=s1[i++]; 10 else 11 temp[k++]=s2[j++]; 12 } 13 while(i<n) 14 temp[k++]=s1[i++]; 15 while(j<m) 16 temp[k++]=s2[j++]; 17 for(i=0;i<k;i++){ 18 s1[i]=temp[i]; 19 } 20 } 21 22 void MergeSort(int a[],int n){ 23 int *s1,*s2,m; 24 if(n>1){ 25 s1=a; 26 m=n/2; 27 s2=s1+m; 28 MergeSort(s1,m); 29 MergeSort(s2,n-m); 30 sort(s1,m,s2,n-m); 31 } 32 } 33 34 void main(){ 35 int a[]={9,8,7,6,5,4,3,2,1,0},i; 36 MergeSort(a,10); 37 for(i=0;i<10;i++){ 38 printf("%d ",a[i]); 39 } 40 }
以上是关于数据结构(排序三)的主要内容,如果未能解决你的问题,请参考以下文章
20172308 实验三《程序设计与数据结构》查找与排序 实验报告
ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)(代码片段