数据结构学习(八)、冒泡排序
2016-10-17 09:15
218 查看
冒泡排序基本思想:比较相邻的二个元素,前者比后者大,则交换二个元素。
冒泡排序优化
当没有任何数据交换则说明序列有序,停止循环
#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; } } } }