1.头文件&&结构体定义
#include<iostream>
#include<ctime>
using namespace std;
#define MaxLength 500
typedef int ElemType;
typedef struct SqList
{
int length;
ElemType *data;
}SqList;
void InitSqList(SqList &L)
{
L.data = new ElemType[MaxLength + 1];
}
2.插入排序
void InsertSqListSort(SqList&L)
{
L.data[0] = 0;
int i = 2, j;
for (i; i <= L.length; i++)
{
if (L.data[i] < L.data[i - 1])
{
L.data[0] = L.data[i];
L.data[i] = L.data[i - 1];
for (j = i - 2; L.data[0] < L.data[j]; j--)
{
L.data[j + 1] = L.data[j];
}
L.data[j + 1] = L.data[0];
}
}
}
3.选择排序
void SelectSqListSort(SqList&L)
{
for (int i = 1; i < L.length; i++)
{
int k = i;
for (int j = i + 1; j <= L.length; j++)
{
if (L.data[j] < L.data[k])
{
k = j;
}
}
if (k > i)
{
L.data[0] = L.data[k];
L.data[k] = L.data[i];
L.data[i] = L.data[0];
}
}
}
4.冒泡排序
void BubbleSqListSort(SqList&L)
{
int is_changed_flag = 0;
for (int i = 1; i < L.length; i++)
{
if (L.data[i] > L.data[i + 1])
{
L.data[0] = L.data[i];
L.data[i] = L.data[i + 1];
L.data[i + 1] = L.data[0];
is_changed_flag = 1;