先定义数据的存储结构SqList
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int ElemType;
typedef int Status;
#define MAXSIZE 1000
typedef struct SqList
{
ElemType r[MAXSIZE+1];
int length;
}SqList;
/* 交换L中数组r的下标为i和j的值 */
void swap(SqList *L,int i,int j)
{
int temp=L->r[i];
L->r[i]=L->r[j];
L->r[j]=temp;
}
1.冒泡排序。
思路:元素俩俩比较,小的往上(下标小的)浮,依次执行length-1次;
/* 对顺序表L作冒泡排序 */
void BubbleSort(SqList *L)
{
int i,j;
for(i=1;i<L->length;i++)
{
for(j=L->length-1;j>=i;j--) /* 注意j是从后往前循环 */
{
if(L->r[j]>L->r[j+1]) /* 若前者大于后者*/
{
swap(L,j,j+1);/* 交换L->r[j]与L->r[j+1]的值 */
}
}