持续更新ing,代码可以在我的Github获取
https://github.com/leonodelee/Data-Structure-Code—/tree/master/%E6%8E%92%E5%BA%8F
代码
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
void InsertSort(int A[],int size)
{
int temp,i,j;
for(i=1;i<size;i++)//循环遍历无序区元素
{
for(j=i-1;j>=0;j--)//当前元素加入有序区,逐个与有序区元素比较大小找到合适插入位置
{
if(A[j+1]<A[j])//若小于有序区元素则交换顺序
{
temp = A[j+1];
A[j+1] = A[j];
A[j] = temp;
}
}
}
}
void SelectSort(int A[],int size)
{
int min=0,temp;//当前最小元素下标
for(int i=0;i<size;i++)//遍历所有元素
{
for(int j=i+1;j<size;j++)//遍历无序区域元素
{
if(A[j] < A[min])//记录当前无序区域最小值下标
{
min = j;
}
}
if(min != i)//更新当前最小值
{
temp = A[min];
A[min] = A[i];
A[i] = temp;
}
}
}
void BubbleSort(int A[],int size)
{
int i,j,temp;
for(i=0;i<size;i++)//遍历
{
for(j=i+1;j<size-i;j++)//遍历无序区域,相邻逐个比较,将最大值放到最右边加入有序区域
{
if(A[j] > A[j+1])//冒泡
{
temp = A[j];
A[j] = A[j+1];
A[j+1] = temp;
}
}
}
}
int main()
{
int A1[] = {3,6,5,2,1,4,8,9,7};
int A2[] = {3,6,5,2,1,4,8,9,7};
int A3[] = {3,6,5,2,1,4,8,9,7};
int A4[] = {3,6,5,2,1,4,8,9,7};
int size = sizeof(A1) / sizeof(A1[0]);
cout<<"#数组初始化为:"<<endl;
for(int i=0;i<size;i++)
{
cout<<A1[i]<<" ";
}
cout<<endl;
InsertSort(A1,size);
cout<<"#插入排序之直接插入排序InsertSort后为:"<<endl;
for(int i=0;i<size;i++)
{
cout<<A1[i]<<" ";
}
cout<<endl;
SelectSort(A2,size);
cout<<"#选择排序之简单选择排序SelectSort后为:"<<endl;
for(int i=0;i<size;i++)
{
cout<<A2[i]<<" ";
}
cout<<endl;
BubbleSort(A3,size);
cout<<"#交换排序之冒泡排序BubbleSort后为:"<<endl;
for(int i=0;i<size;i++)
{
cout<<A2[i]<<" ";
}
cout<<endl;
return 0;
}