zoukankan      html  css  js  c++  java
  • 冒泡 选择 插入排序

    冒泡 选择 插入排序

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

    冒泡排序

    //一直找最大的放到最后面
    #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;
    }
    
    
  • 相关阅读:
    【洛谷P2860】冗余路径
    【CF1042D】Petya and Array 离散化+树状数组
    【洛谷P2127】序列排序
    【洛谷P4462】异或序列
    【SPOJ10707】COT2
    【CF1119D】Frets On Fire
    【CF1119E】Pavel and Triangles
    【洛谷P1903】数颜色
    hdu 3488(KM算法||最小费用最大流)
    hdu 1853(拆点判环+费用流)
  • 原文地址:https://www.cnblogs.com/serendipity-my/p/12667385.html
Copyright © 2011-2022 走看看