c++算法联系,冒泡排序,bubble sort,插入排序,insert sort,
#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,的更多相关文章
- Java中的经典算法之冒泡排序(Bubble Sort)
		Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ... 
- java排序算法之冒泡排序(Bubble Sort)
		java排序算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数 ... 
- 【排序算法】冒泡排序(Bubble Sort)
		0. 说明 参考 维基百科中的冒泡排序 冒泡排序 (Bubble Sort) 是与插入排序拥有相等的执行时间,但是两种算法在需要的交换次数却很大地不同. 在最坏的情况,冒泡排序需要 O(n2) 次交 ... 
- 快速排序算法回顾   --冒泡排序Bubble Sort和快速排序Quick Sort(Python实现)
		冒泡排序的过程是首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录和第三个记录的关键字.以此类推,直至第n-1个记录和第n个记录的关键字进行过比较为止 ... 
- c#经典算法之冒泡排序(Bubble Sort)
		转载于:https://www.cnblogs.com/shen-hua/p/5422676.html 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面, ... 
- 分享知识-快乐自己:Java中的经典算法之冒泡排序(Bubble Sort)
		原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将 ... 
- 基础算法之冒泡排序Bubble Sort
		原理 将相邻的数据两两进行比较,按照从小到大或者从大到小的顺序进行位置交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后从头开始再次进行两两比较交换,直到倒数第二位时结束.按照此规则,若干 ... 
- 算法:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort)总结
		背景 这两天温习了 5 中排序算法,之前也都看过它们的实现,因为没有深入分析的缘故,一直记不住谁是谁,本文就记录一下我学习的一些心得. 三种排序算法可以总结为如下: 都将数组分为已排序部分和未排序部分 ... 
- [算法] 冒泡排序 Bubble Sort
		冒泡排序(Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ... 
随机推荐
- POJ 2001 字典树(入门题)
			#include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #i ... 
- myeclipse10 安装 testng插件
			下载插件: http://pan.baidu.com/s/1c0pghFE 放到dropins目录 
- codeforces 354 DIV2
			B - Pyramid of Glasses n层杯子,问k分钟能流满多少个杯子?和到香槟一样的过程? 思路:应为水的流速为每分钟一立方体(YY),可以做个转化,把最上层的杯子最原始的容积看成K,每个 ... 
- textarea使用注意事项
			问题现象: 意外的发现页面中 textarea 标签中的内容缩进了 猜测: CSS影响了? 过程:(辛酸得说说) 查了CSS,并没有发现,CSS是正常的 然后找了一个正常的,跟这个异常的进行了对比,代 ... 
- Turn Your Raspberry Pi Into a WiFi Hotspot with Edimax Nano USB EW-7811Un (RTL8188CUS chipset)
			http://www.daveconroy.com/turn-your-raspberry-pi-into-a-wifi-hotspot-with-edimax-nano-usb-ew-7811un- ... 
- nyoj 129 树的判定
			并查集+欧拉 树的判定 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 A tree is a well-known data structure that is e ... 
- [OC Foundation框架 - 22] 集合的内存管理
			A.集合的手动内存管理 NSArray addObject: 加入的元素执行一次retain removeObject: 被删除的元素执行一次release removeAllObjects: 所有元 ... 
- 转载  深入理解JavaScript中的this关键字
			转载原地址: http://www.cnblogs.com/rainman/archive/2009/05/03/1448392.html 深入理解JavaScript中的this关键字 1. 一 ... 
- Android 添加、移除和判断 桌面快捷方式图标
			思路: Launcher为了应用程序能够定制自己的快捷图标,就注册了一个 BroadcastReceiver 专门接收其他应用程序发来的快捷图标定制信息.所以只需要根据该 BroadcastRecei ... 
- android 数据存储操作之SQLite
			一. SQLite介绍 SQLite是android内置的一个很小的关系型数据库. 二. SQLiteOpenHelper的使用方法 ①SQLiteOpenHelper是一个辅助类来管理数据库的创建和 ... 
