数据结构学习(八)、冒泡排序

冒泡排序基本思想:比较相邻的二个元素,前者比后者大,则交换二个元素。

#define MAXSIZE 20
typedef struct
{
  int data[MAXSIZE] ,
  int lenght 
} SqList;

void BubbleSort(SqList *L)
{
    int i,j;
    for(i=0;i<L->length;i++){
       for(j=L->length-1;j>=i;j--){
           if(L->data[j]>L->data[j+1])
              swap(L,j,j+1);   
       }
    }  
}    

void swap(SqList *L,int i, int j)
{
   int temp;
   temp = L->data[i];
    L->data[i] =  L->data[j]; 
    L->data[j] = temp;
}

冒泡排序优化

当没有任何数据交换则说明序列有序,停止循环

void BubbleSort2(SqList *L)
{
    int i,j;
    Status  flag = true;
    for(i =0 ; i<L->length && flag;i++){
        flag = false;
        for(j=L->length-1;j>=i;j--){
            if(L->data[j]>L->data[j+1]){
                swap(L,j,j+1);
                flag = true;
             }
       }
    }  
}

 

posted on 2016-10-17 09:15  会学习的猪  阅读(170)  评论(0编辑  收藏  举报

导航