#include <iostream.h>

#define  MAX 100



void dispaly(int a[],int n)

{

    for(int i=0;i<n;i++)

    {

        cout<<"a["<<i<<"]="<<a[i]<<" ";

    }

    cout<<endl;

    

}



// bubble sort 冒泡排序

void bubblesort(int a[],int n)

{

    int i,j;

    

    for(i=0;i<n-1;i++)

    {

        for(j=0;j<n-i-1;j++)

        {

            if(a[j]>a[j+1])

            {

                int temp=a[j];

                a[j]=a[j+1];

                a[j+1]=temp;

            }



        }

        dispaly(a,n);

    }

}



//insert sort 插入排序



void insertSort(int a[],int n)

{

    for(int i=1;i<n;i++)

    {

        //for(int j=i;j>0 &&a[j]<a[j-1];j--)

        {

        //    int temp=a[j-1];

        //    a[j-1]=a[j];

        //    a[j]=temp;

        }

        



        

        for(int j=0;j<i &&a[i]<a[i-j-1];j++)

        {

            int temp=a[j-1];

            a[j-1]=a[j];

            a[j]=temp;

        }

        dispaly(a,n);

    }

}

void selectSort(int a[],int n)

{



    for(int i=0;i<n;i++)

    {

        int min=a[i];

        int index=i;

        for(int j=i;j<n-1;j++)

        {

            if(min>a[j+1])

            {

                min=a[j+1];

                index=j+1;

            }

        }

        int temp=a[i];

        a[i]=min;

        a[index]=temp;



    }



    /*

    for(int i=0;i<n;i++)

    {

        int index=i;

        for(int j=i;j<n-1;j++)

        {

            if(a[index]>a[j+1])

            {

                index=j+1;

            }

        }

        int temp=a[i];

        a[i]=a[index];

        a[index]=temp;

    }

    */

}



int main ()

{



    int a[MAX],i;

    for(i=0;i<MAX;i++)

    {

        cin>>a[i];

        if(a[i]==-0)

            break;

    }

    //dispaly(a,i);

    //cout<<"================start sort=================="<<endl;

    //bubblesort(a,i);

    //cout<<"================result======================"<<endl;

    //dispaly(a,i);



    //insertSort(a,i);



    selectSort(a,i);

    dispaly(a,i);

    

    return 0;

}

c++算法联系,冒泡排序,bubble sort,插入排序,insert sort,的更多相关文章

  1. Java中的经典算法之冒泡排序(Bubble Sort)

    Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...

  2. java排序算法之冒泡排序(Bubble Sort)

    java排序算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数 ...

  3. 【排序算法】冒泡排序(Bubble Sort)

    0. 说明 参考 维基百科中的冒泡排序 冒泡排序 (Bubble Sort) 是与插入排序拥有相等的执行时间,但是两种算法在需要的交换次数却很大地不同. 在最坏的情况,冒泡排序需要 O(n2)  次交 ...

  4. 快速排序算法回顾 --冒泡排序Bubble Sort和快速排序Quick Sort(Python实现)

    冒泡排序的过程是首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录和第三个记录的关键字.以此类推,直至第n-1个记录和第n个记录的关键字进行过比较为止 ...

  5. c#经典算法之冒泡排序(Bubble Sort)

    转载于:https://www.cnblogs.com/shen-hua/p/5422676.html 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面, ...

  6. 分享知识-快乐自己:Java中的经典算法之冒泡排序(Bubble Sort)

    原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将 ...

  7. 基础算法之冒泡排序Bubble Sort

    原理 将相邻的数据两两进行比较,按照从小到大或者从大到小的顺序进行位置交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后从头开始再次进行两两比较交换,直到倒数第二位时结束.按照此规则,若干 ...

  8. 算法:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort)总结

    背景 这两天温习了 5 中排序算法,之前也都看过它们的实现,因为没有深入分析的缘故,一直记不住谁是谁,本文就记录一下我学习的一些心得. 三种排序算法可以总结为如下: 都将数组分为已排序部分和未排序部分 ...

  9. [算法] 冒泡排序 Bubble Sort

    冒泡排序(Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ...

随机推荐

  1. HDU 5607 graph 矩阵快速幂 + 快速幂

    这道题得到了学长的助攻,其实就是一个马尔科夫链,算出一步转移矩阵进行矩阵快速幂就行了,无奈手残 这是我第一回写矩阵快速幂,写的各种毛病,等到调完了已经8点44了,交了一发,返回PE,(发现是少了换行) ...

  2. Git 基础 - Git Aliases

    $ git config --global alias.co checkout $ git config --global alias.br branch $ git config --global ...

  3. 导入showb时候出错--2015-12-4

    [root@cache-02 ~]# /opt/coreseek/csftweb-bash: /opt/coreseek/csftweb: is a directory[root@cache-02 ~ ...

  4. Magento 多语言

    一: 1>进入后台选择如下: 2> 显示页面如下: 输入后台登陆的用户名和密码. 3>然后去Magento官网搜索一下 Magento Official Chinese Transl ...

  5. fuse文件系统

    用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统.目前Linux通过内核模块对此进行支持.一些文件系统如ZFS,glus ...

  6. Code Understanding Step by Step - We Need a Task

      Code understanding is a task we are always doing, though we are not even aware that we're doing it ...

  7. 通过在shell脚本中用scp或rsync实现远程同步文件

    通过在shell脚本中用expect实现远程scp文件  shell expect的简单用法 http://myunix.blog.51cto.com/191254/1095074 http://ji ...

  8. adb pull命令复制android数据库文件.db到电脑

    1.win+r cmd进入命令行 2.cd 进入[sdk]/platform-tools目录下 3.执行下面命令行,复制xxx.db到F:/dest adb pull /data/data/[pack ...

  9. [转]jquery.vTicker(垂直滚动)

    转至:http://www.w3ci.com/plugin/660.html 简介 vTicker 是一款非常小巧的 jQuery 垂直滚动插件,压缩后只有 2KB.vTicker 支持自定义滚动时间 ...

  10. Java Serializable(序列化)的理解和总结、具体实现过程(转)

    原文地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=13576&fromuid=3402 Java Serializable ...