C语言(3) - 冒泡排序 归并排序

1.冒泡排序:将相临的两个元素进行比较,直到整个数列有序为止

 

/*
泡冒排序
比較相臨的兩個元素,直到有序為止
*/
#include 
"getData.h"

void bubble(int *array)
{
    
int i;
    
for(i=ArraySize-1;i>0;i--)
    {
        
int j;
        
for(j = ArraySize-1;j>ArraySize-i-1;j--)
        {
            
if(array[j]<array[j-1])
            {
                
int tmp = array[j-1];
                array[j
-1= array[j];
                array[j] 
= tmp;
            }
        }
    }
}

 

 2,归并排序

/*
归并排序
算法思想是每次把待排序列分成两部分,分别对这两部分递归地用归并排序,
完成后把这两个子部分合并成一个序列。
*/
#include 
"getData.h"
int CountFlag = 0;
/*

*/
void Merge(int* array,int flow,int middle,int high)
{
    
int n1 = middle-flow+1int n2 = high-middle;
    
int temp1[n1]; int temp2[n2];

    
int i;
    
for (i=0; i<n1; i++)
        temp1[i] 
= array[flow+i];
    
for (i=0; i<n2; i++)
        temp2[i] 
= array[middle+i+1];
    
int j,k;
    
for (j=0,k=0,i=flow; i<=high; i++)
    {
        
if (j<n1&&k<n2)
        {
            
if (temp1[j]>=temp2[k])
            {
                array[i] 
= temp2[k++];
            }
            
else
            {
                array[i] 
= temp1[j++];
            }
        }
        
else
        {
            
if(j>=n1&&k<n2)
            {
                array[i] 
= temp2[k++];
            }
            
if(j<n1&&k>=n2)
            {
                array[i] 
= temp1[j++];
            }
        }
    }

} 

 

posted @ 2009-06-09 10:25  ________囧丶殇  阅读(364)  评论(0编辑  收藏  举报