码迷,mamicode.com
首页 > 编程语言 > 详细

选择排序 冒泡排序 插入排序

时间:2019-02-03 23:22:29      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:limits   需要   cli   out   --   冒泡排序   位置   opened   clu   

1.选择排序

每一次找出最小的值,放在最前面的位置,一个一个安置

技术图片
//选择排序
#include<iostream>
#include<climits>
using namespace std;
template<class T>
void gcd(T a[],int n){
    int mix,temp;
    for(int i=0;i<n-1;i++){
        mix=i;
        for(int j=i+1;j<n;j++)
            if(a[j]<a[mix]) mix=j; 
            if(i!=mix){
                temp=a[i];
                a[i]=a[mix];
                a[mix]=temp;
            }
    }
}
int main()
{
     int a[10] = {43, 65, 4, 23, 6, 98, 2, 65, 7, 79};
     gcd(a,10);
     for(int i=0;i<10;i++) cout<<a[i]<<" ";
     cout<<endl;
} 
View Code

2.冒泡排序

遍历数组,发现前面的数字大于自己就换位置

技术图片
//冒泡排序
#include<iostream>
using namespace std; 
void swap(int &a,int &b ){
    int tmp;
    tmp=a;
    a=b;
    b=tmp;
}
void gcd(int *a,int n){
    for(int i=0;i<n;i++)
    for(int j=0;j<n-1;j++){
        if(a[j]>a[j+1]) swap(a[j],a[j+1]);
    }
}
int main()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++) cin>>a[i];
    gcd(a,n);
    for(int i=0;i<n;i++) cout<<a[i]<<" ";
    cout<<endl;
}
View Code

3.插入排序

遍历数组,新遍历的数字,寻找合适的位置插进去

技术图片
//插入排序 
#include<iostream>
using namespace std;

int main()
{
int a[]={1,3,1,2,0,4,5,2,6,2,0};
        int n=10;
        int i,j,temp;//用来暂存
        for(i=1;i<n;i++){
            temp=a[i];
            j=i-1;
            for(;j>=0&&a[j]>temp;j--)//找到tmp插入的位置 
                a[j+1]=a[j];
//            if(j!=i-1)//j等于i-1的话自然不需要填补了
                a[j+1]=temp;
    }
    
    for(int i=0;i<10;i++) cout<<a[i]<<" ";
     
    }
View Code

 

选择排序 冒泡排序 插入排序

标签:limits   需要   cli   out   --   冒泡排序   位置   opened   clu   

原文地址:https://www.cnblogs.com/helloworld2019/p/10351161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!