#include <iostream>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <iostream>
#include <windows.h>
using namespace std;
#define MAXSIZE 10
typedef struct
{
int r[MAXSIZE+1];
int length;
}SqList;
int InitList(SqList *L)
{
L->length=0;
return true;
}
void swap(SqList *L,int i,int j)
{
int temp=L->r[i];
L->r[i]=L->r[j];
L->r[j]=temp;
}
void BubbleSort0(SqList *L)/*不成熟的冒泡排序算法*/
{
for(int i=0;i<L->length;i++)
{
for(int j=i+1;j<L->length;j++)
{
if(L->r[i]>L->r[j]) swap(L,i,j);
}
}
}
void BubbleSort1(SqList *L)/*优化后的冒泡,减少了不必要的交换*/
{
int flag=1;
for (int i=0;(i<L->length)&&flag;i++)
{
flag=0;
for(int j=L->length-2;j>=i;j--)
{
if(L->r[j]>L->r[j+1])
{
swap(L,j,j+1);
flag=1;
}
}
}
}
void SelectSort(SqList *L)/*选择排序S*/
{
int min;
for(int i=0;i<L->length;i++)
{
min=i;
for (int j=i+1;j<L->length;j++)
{
if (L->r[min]>L->r[j])
{
min=j;
}
}
if (min!=i)
{
swap(L,i,min);
}
}
}
void InsertSort(SqList *L)/*插入排序*/
{
for (int i=1;i<L->length;i++)/*从数组中第二个数开始遍历*/
{
//int temp=L->r[i];/*放入临时变量中*/
//for (int j=i-1;j>=0;j--)
//{
// if (temp<=L->r[j])
// {
// L->r[j]=L->r[j-1];
// }
// }
//
//L->r[i]=temp;
int j = i;
int target = L->r[i];
while (j > 0 && target < L->r[j-1])
{
L->r[j] = L->r[j-1];
j--;
}
L->r[j] = target;
}
}
void ShellSort(SqList *L)
{
}
//第16周周五下午2:00,综合楼C105
void HeapSort(SqList *L)
{
int i;
for(i=L->length/2;i>0;i--)
HeapAdjust(L,i,L->length);
for (i=L->length;i>1;i--)
{
swap(L,1,i);
HeapAdjust(L,1,i-1);
}
}
int main()
{
SqList L;
InitList(&L);
L.length=4;
for(int i=0;i<L.length;i++)
{
cin>>L.r[i];
}
InsertSort(&L);
for(int i=0;i<L.length;i++)
{
cout<<L.r[i]<<endl;
}
system("pause");
}
欢迎使用CSDN-markdown编辑器
最新推荐文章于 2021-01-07 23:01:28 发布