#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. sqlserver 2008 R2 分区表测试

    有一张表期中有100多w条数据 程序执行起来比较慢,想用分区表的办法,使查询变快一些. 方案如下 --查看分区信息SELECT * FROM sys.partition_range_values -- ...

  2. NOIP2004 津津的储蓄计划

    一.津津的储蓄计划 (Save.pas/dpr/c/cpp). [问题描述] 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同. ...

  3. CCF 认证

    题意:字符串替换 string+map的应用 #include<iostream> #include<stdio.h> #include<stdlib.h> #in ...

  4. leetcode@ [322] Coin Change (Dynamic Programming)

    https://leetcode.com/problems/coin-change/ You are given coins of different denominations and a tota ...

  5. HDU-4694 Professor Tian 概率DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4649 题意:给一个位运算的表达式,每个运算符和其后的运算数有一定概率不计算,求最后表达式的期望. 因为 ...

  6. sublime text2注册码

    ----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC ...

  7. hdu 3617 Happy 2009

    Happy 2009 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  8. (4)ARP:地址解析协议

    一.简介 ARP为IP地址到对应的硬件地址之间提供动态映射.之所以称为动态是因为这个过程是自动完成的.一般应用程序用户或系统管理员不必关心.RARP是被那些没有磁盘驱动器的系统使用,它需要系统管理员进 ...

  9. 高效使用Bitmaps(三) 神奇的Cache

    转载:http://my.oschina.net/rengwuxian/blog/184650 应用的场景 假设你开发了一个聊天程序,它的好友列表中显示从网络获取的好友头像.可是如果用户发现每次进入好 ...

  10. OpenCV入门学习笔记

    OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...