四种排序方式

四种排序方式

选择排序,冒泡排序,插入排序,桶排序。
我还只是个孩子为什么要学这玩意。

一:选择排序:“以前我没得选择,现在我想做个排序”
首先输入n个数字,固定第一个数字不变,从它的下一个数字开始寻找,如果找到比第一个数字小的数,就交换下标,接着向下寻找,如果找到比上一个所找的数字小的数便继续交换下标,直到比较完所有数字,第一个最小的数字就随之确定了。重复以上过程,直到最后一个数字。

代码:

#include
using namespace std;
int main()
{
	int n,i,j,k,sum,a[1000000];
	cin>>n;
	for(i=0;i>a[i];                     //输入数据
	for(i=0;ia[k])         //进行比较
			K=j;                  //交换下标
        }
		sum=a[i];                 //
		a[i]=a[k];                //
		a[k]=sum;                 //交换对应下标值
	}
	for(i=0;i

二:冒泡排序:“我只是想吐个泡泡而已,排个啥子序”
首先输入n个数字,先比较第一个和第二个数字,如果第一个数比第二个数大,就交换数,再比较第二个和第三个数字,如果第二个数字比第三个数字大,就交换数字…一直比较到最后一个和倒数第二个数字,最大的数字便被排列在最后。重复以上过程,直到第一个数字被确定。

代码:

#include
using namespace std;
int main()
{
	int n,i,j,sum,a[1000000];
	cin>>n;
	for(i=0;i>a[i];              	   //输入数据
	for(i=1;ia[j+1])         //比较大小
			{
				sum=a[j];            //
				a[j]=a[j+1];         //
				a[j+1]=sum;          //交换坐标
			}
		}
	}
	for(i=0;i

三:插入排序:“插入无效,谢谢合作”
首先输入n个数字,从第二个数字开始,如果比前面的数字小,就将这个数字与前面交换,再拿取第三数字,如果比前一个数字小就交换数字,再与第一个数字比较,如果比它小就交换,再拿取第四个数字…直到最后一个数字被拿取并放置在指定位置。

代码:

#include
using namespace std;
int main()
{
	int i,j,k,n,t,a[1000];
	cin>>n;
	for(i=0;i>a[i];       //输入数据
		for(i=0;i=0;j--)
		if(a[i]>a[j])break;          //比较大小
		t=a[i];                      //
		for(k=i-1;k>j;k--)           // 
		a[k+1]=a[k];                 //
		a[k+1]=t;                    //更换数值
	}
	for(i=0;i

四:桶排序:“我明明是装水的好吧。”
首先输入n个数字,将其放在下表为其本身的桶中,再从0开始,一直到最大定额的桶的下标,如果桶中数量不为零,则输出桶的标号,如果桶中个数不只有一个,再输出后,将桶中的这数扔掉(即将桶自减),接着看桶中是否还有数,有则继续输出,没有则接着看下一个桶,直到把最后一个桶看完。
注:桶排序不适用于小数以及跨度较大需要开较多桶的题目。

代码:

#include
using namespace std;
int main()
{
	int tong[101]={0},n,i,j,k;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>k;
		tong[k]++;                   	//输入数据
	}
	for(i=0;i<=100;i++)      
		while(tong[i]>0)                //判断桶中是否有数字
		{
			cout<

嗯…祝大家平安。

你可能感兴趣的:(初出茅庐)