冒泡 选择 插入排序

一时兴起,写一下这三种排序的代码

冒泡排序

//一直找最大的放到最后面
#include<iostream>
#include<algorithm>
using namespace std;
int a[10];
int main()
{
	//先输入这个数组 
	for(int i=0;i<10;i++)
	{
		cin>>a[i];
	}
	int n=sizeof(a)/sizeof(a[0]);
	if(n<2)  return 0;
	
	for(int end=n-1;end>0;end--)
	{
		for(int i=0;i<end;i++)
		{
			if(a[i]>a[i+1])
			swap(a[i],a[i+1]);
		}
	}
	
	for(int i=0;i<10;i++)
	cout<<a[i]<<endl;
	return 0;
}

选择排序

#include<iostream>
#include<algorithm>
using namespace std;
int a[10];
int main()
{
	//先输入这个数组 
	for(int i=0;i<10;i++)
	{
		cin>>a[i];
	}
	int n=sizeof(a)/sizeof(a[0]);
	if(n<2)  return 0;
	
	//找最小的 放最前面
	for(int i=0;i<n-1;i++)
	{
		int minindex=i;
		for(int j=i+1;j<n;j++)
		{
			minindex=a[j]<a[minindex]?j:minindex;
		}
		swap(a[minindex],a[i]);
	} 
	
	for(int i=0;i<10;i++)
	cout<<a[i]<<endl;
	return 0;
}

插入排序

#include<iostream>
#include<algorithm>
using namespace std;
int a[10];
int main()
{
	//先输入这个数组 
	for(int i=0;i<10;i++)
	{
		cin>>a[i];
	}
	int n=sizeof(a)/sizeof(a[0]);
	if(n<2)  return 0;
	
//从第二个数开始,依次与前面的比较
	for(int i=1;i<n;i++)
	{
		for(int j=i-1;j>=0 && a[j]>a[j+1];j--)
		{
			swap(a[j],a[j+1]);
		}
	}
	
	for(int i=0;i<10;i++)
	cout<<a[i]<<endl;
	return 0;
}

 posted on 2020-04-09 15:44  My_serendipity  阅读(145)  评论(0编辑  收藏  举报