对于冒泡排序的含义以及图示表示,这里就不再赘述,这篇博客已经说的很明白了.
添加链接描述
于是就用代码实现了一下基于顺序表的冒泡排序 ,因为一直看的时大话数据结构这本书 于是把上面介绍的三种实现方法都在代码中实现一下 具体实现与书中有一些出入.在上述博客给出代码的基础上做出了改进.因为后期还有用到排序算法,后期会对顺序表的基本操作这一块儿进行封装.下面是代码实现,详细已经在代码中做出了声明.
#include<stdio.h>
#include<assert.h>
#include<iostream>
#include<string.h>
using namespace std;
#define MAX_SIZE 20
/*
*代码中多次出现assert()函数 于是查了一下assert函数的用法
*assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
*/
typedef struct {
int a[MAX_SIZE];//用于储存排序数组
int size;//用于记录顺序表的长度
}seqlist;
//顺序表初始化
void init_list(seqlist *l)
{
assert(l);//判断l是否为空
memset(l->a, 0, sizeof(l->a));//初始化数组
l->size = 0;
}
//尾插
void last_insert(seqlist *l, int n)
{
assert(l);
if (l->size < MAX_SIZE)
{
l->a[l->size] = n;//由于下标是从0开始的 然后尾部插入法就是将n赋值给a[l->