⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 直接插入冒泡选择排序算法的实现.cpp

📁 插入排序的直接改进算法--希尔排序算法.将用户输入的一列数按递增顺序排好并输出.以及直接插入冒泡选择排序算法的实现
💻 CPP
字号:
#include<iostream.h>
#define MaxSize 10  //一个用作示例的顺序表的最大长度

typedef struct RecordType //记录类型
{ 
	int key;  //关键字项

}SqList[MaxSize]; //顺序表类型 

void InsertSort(SqList r,int n)  
//直接插入排序,排序元素r[1]-r[n]//
{
	int i,j;
	for(i=2;i<=n;i++)
	{
		r[0]=r[i];  //r[0]为监视哨
		j=i-1;

		while(r[0].key < r[j].key)  //进行元素移动,以便腾出一个位置插入r[i]
		{
			r[j+1]=r[j]; //元素后移
			j--;  
		}
		r[j+1]=r[0];  //在j+1位置处插入r[0]
	}
}

void  BubbleSort(SqList r,int n) 
//起泡排序(冒泡排序),n->顺序表长度//
{
	int i,j;
	RecordType w;

	for(i=1;i<=n-1;i++)
	{
		for(j=n;j>=i+1;j--)
		{
			if(r[j].key < r[j-1].key)  //比较,r[j]与r[j-1]进行交换
			{
				w=r[j];
				r[j]=r[j-1];
				r[j-1]=w;
			}
		}
	}

}

void SelectSort(SqList r,int n)  
//选择排序//
{
	int i,j,k;
	RecordType temp;

	for(i=1;i<=n-1;i++)
	{
		k=i;
		for(j=i+1;j<=n;j++)
		{
			if(r[j].key < r[k].key) { k=j; } //用k指出每趟在无序区段的最小元素//

			temp=r[i];  //将r[k]与r[i]交换//
			r[i]=r[k];
			r[k]=temp;
		}
	}
}


void ShowSort(SqList r,int n)  //显示排序结果//
{
	for(int i=1;i<=n;i++)
	{
		cout<<r[i].key<<" ";
	}
	
}


			

void main()
{
	SqList r;
	int n;
	
	bool f;
	f=true;
while(f)
{

	cout<<"请输入顺序表的长度:";
	cin>>n;
	
    cout<<"请输入顺序表的元素:";
	for(int i=1;i<=n;i++)
	{ cin>>r[i].key; }
	cout<<endl;

	cout<<"用<起泡排序>进行排序得到:"<<endl;
	BubbleSort(r,n);
    ShowSort(r,n);
	cout<<endl<<endl;
    
	cout<<"用<插入排序>进行排序得到:"<<endl;
	InsertSort(r,n);
	ShowSort(r,n);
	cout<<endl<<endl;

	cout<<"用<选择排序>进行排序得到:"<<endl;
	SelectSort(r,n);
	ShowSort(r,n);

	cout<<endl<<endl;

cout<<"要继续请输入Y或y,退出按其它键:";
char c;
cin>>c;
if(c=='Y' || c=='y') { f=true; }
else { f=false; }
   
cout<<endl;

}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -