大话数据结构——冒泡排序

#include<iostream>

using namespace std;



#define MAX_SIZE 100//用于排序数组个数的最大值



typedef struct  

{

	int r[MAX_SIZE+1];//用于存储要排序的数组

	int length;//用于记录顺序表的长度



}sqlist;



//用于交换数组r中下标i和下标j的数组元素的值

void swap(sqlist* L, int i,int j)

{

	int temp;

	temp=L->r[i];

	L->r[i]=L->r[j];

	L->r[j]=temp;

}



//冒泡排序(比较SB的)

int maopaopaixu_SB(sqlist* L)

{

	int len=L->length;

	for(int i=1;i!=len;++i)

	{

		for(int j=i+1;j!=len;++j)

		{

			if(L->r[i]>L->r[j])

				swap(L,i,j);

		}

	}

	return 1;

}



//冒泡排序(正常)

int maopaopaixu_zc(sqlist* L)

{

	int len=L->length;

	for(int i=1;i!=len;++i)

	{

		for(int j=len;j!=i;j--)

		{

			if(L->r[j]<L->r[j-1])

				swap(L,j,j-1);

		}

	}

	return 1;

}



//冒泡排序(优化)

int maopaopaixu_yh(sqlist* L)

{

	int len=L->length;

	int flag=0;

	for(int i=1;i!=len;++i)

	{

		flag=0;

		for(int j=len;j!=i;j--)

		{

			if(L->r[j]<L->r[j-1])

			{swap(L,j,j-1);flag=1;}

		}

		if(flag==0)

			break;

	}

	return 1;

}

int main()

{



}

  

你可能感兴趣的:(数据结构)