`
kmplayer
  • 浏览: 508832 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

各式各样的排序算法

阅读更多
1,选择排序.
核心思想:n个数,两重for循环,第一重n-1次,第k次选出第k小的数的下标index,交换下标index和k-1的值.
#include <iostream>

using namespace std;

void SelectSort(int r[ ], int n)
{
    int m=0;
    int i;
    int j;
    int index;
    int temp;
    for (i=0; i<n-1; i++)                  //对n个记录进行n-1趟简单选择排序
    {
       index=i;
       for (j=i+1; j<n; j++)            //在无序区中选取最小记录
            if (r[j]<r[index])
             index=j;
       if (index!=i)
       {
          temp=r[i];
          r[i]=r[index];
          r[index]=temp;
          m+=3;
       }
    }
    for(i=0;i<n;i++)
        cout<<r[i]<<" ";
    cout<<"\n"<<"移动次数:"<<m<<"\n";
}

int main()
{

  const int numv=11; //赋值

  int y[]={8,2,11,6,1,10,3,9,5,4,7};
  cout << "\n简单选择排序前:" << "\n";
  for(int j=0;j<numv;j++)
      cout<<y[j]<<" ";

  cout << "\n简单选择排序结果为:" << "\n";
  SelectSort(y,numv);
}

2,冒泡排序
核心思想:第一次0到n-1,第二次0到exchange.分别比较j和j+1,前者大于后者,交换元素.设一个exchange,记录发生交换的最大的那个j,说明j之后的元素已经排序完毕.当exchange=0时,没有元素发生交换,此后排序完毕.
#include <iostream>
using namespace std;

//冒泡排序
void BubbleSort(int r[], int n)
{
    int tag;
    for(int i=0;i<n-1;i++)
    {
        tag=false;
        for(int j=0;j<n-i-1;j++)
        {
            if(r[j]>r[j+1])
            {
                r[j]^=r[j+1];
                r[j+1]^=r[j];
                r[j]^=r[j+1];
            }
            tag=true;
        }
        if(!tag) break;
    }
    for(int i=0;i<n;i++)
       cout<<r[i]<<" ";
    cout<<endl;
}

int main()
{

    const int numv=11; //赋值

    int y[]={8,2,11,6,1,10,3,9,5,4,7};
    cout << "\n冒泡排序前:" << "\n";
    for(int j=0;j<numv;j++)
        cout<<y[j]<<" ";
    cout << "\n冒泡排序结果为:" << "\n";
    BubbleSort(y,numv);
}
分享到:
评论

相关推荐

    9种三角形的算法,各式各样的三角形

    9种三角形的算法,方便程序的开发。9种三角形的算法,方便程序的开发。9种三角形的算法,方便程序的开发。

    一种新型三维条纹图像滤波算法 图像滤波算法.pdf

    但是,激光三维成像系统结构相当复杂,系统中存在各式各样的噪声源,因此在激光条纹图像的采集过程中,会受到各种噪声的干扰影响。如果不对图像中的噪声做相应处理,这些噪声将会严重影响后期条纹图像信息数据的提取...

    数据结构 上机答案 数据结构 上机答案 数据结构 上机答案

    解决方案使用冒泡排序算法,即通过交换元素来实现排序。这个算法的时间复杂度为O(n^2),其中n是数组的长度。 1.17 Status fib(int k,int m,int &f) //求 k 阶斐波那契序列的第 m 项的值 f 这道题目要求编写一个...

    各式各样各味道的PPT模板

    "各式各样各味道的PPT模板"这个标题暗示了我们拥有一系列风格迥异、适用于不同场景的PPT模板资源。这些模板可以帮助用户快速创建引人入胜的演示文稿,无需从头开始设计,极大地提高了工作效率。 首先,让我们来探讨...

    RGB图片相似图识别 算法

    色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的, RGB 即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的...

    数据结构与算法

    但她后来 没有照做,她遇到各式各样的麻烦,包括花很多钱修理汽车,她后来重打印并寄出了该信 后,她获得了一辆崭新的小轿车。  请记住不要寄钱!不要不理这封信!这是一封爱情连锁信,四天内必须传给20...

    教师招聘、教师资格证面试小学美术《各式各样的鞋》试讲稿.pdf

    教师招聘、教师资格证面试小学美术《各式各样的鞋》试讲稿.pdf

    日历控件大集合—各式各样的日历控件

    首先,"各式各样的日历控件"这一标签暗示了日历控件具有丰富的多样性。不同的设计和功能满足了不同场景的需求。例如,有的日历控件可能只提供简单的日期选择,而有的则带有事件标记、日期范围选择、时间滑块等功能。...

    一种融合社会力模型与粒子群算法的交通路网拥堵状态预测方法及系统与流程.docx

    模型化方法中包括历史平均模型、自回来模型等,机器学习方法包括了各式各样的神经网络。模型化方法所需要依靠的硬件设备相对简洁,一般是利用了统计学原理,从交通流历史数据的变幻中查找规律,用数据拟合的方法估量...

    各式各样的车.ppt

    【标题解析】:“各式各样的车.ppt”这个标题表明这是一个关于不同类型车辆的演示文稿,可能涵盖了汽车、摩托车、卡车、公交车等多种交通工具。在PPT中,通常会通过图片、图表和简短的文字介绍来展示各类车辆的特点...

    口语-各式各样的接吻.docx

    口语-各式各样的接吻.docx

    各式各样古风人物素材

    本压缩包“各式各样古风人物素材”提供了一系列丰富的古风人物图像资源,适用于各种创意项目,如插画设计、游戏美术、视觉传达设计等。 古风人物素材的种类繁多,可以包含古代服饰、发型、表情、动态等多种元素。...

    acm算法--并查集详解

    假设江湖上散落着各式各样的大侠,他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友的朋友就是...

    各式各样的loading图片

    "各式各样的loading图片"这个主题,主要是为了在数据请求期间提供视觉反馈,让用户知道系统正在处理他们的请求,而不是无响应。这些loading图片通常以gif格式呈现,因为gif支持动画,可以更生动地展示加载过程。 ...

    各式各样的抢答器

    在这个名为“各式各样的抢答器”的压缩包中,我们可以期待找到多种抢答器的设计方案,涵盖了不同的技术和实现方法。 首先,我们要理解抢答器的基本工作原理。抢答器通常由输入部分(参赛者的按钮)和输出部分(显示...

    推荐各式各样PPT模板

    "推荐各式各样PPT模板"这个主题旨在分享一系列多样化的PPT模板资源,这些模板适用于不同的场合和目的。 1. **模板分类**:PPT模板通常根据用途进行分类,如商业报告、产品推介、学术演讲、教育培训、个人简历等。每...

    各式各样的后台模板

    在“各式各样的后台模板”这个主题中,我们主要讨论的是HTML编写的一系列后台界面设计。 HTML(超文本标记语言)是创建网页的基础语言,它定义了网页的结构和内容。在后台模板中,HTML通常被用来构建页面的基本元素...

    各式各样delphi技巧100则

    这个名为“各式各样Delphi技巧100则”的资源包,显然是为Delphi开发者精心准备的一系列实用技巧和源码示例。下面将详细探讨这些可能包含的Delphi编程技巧: 1. **组件使用**:Delphi的界面设计离不开组件,如...

    20120102 (ASPNET)各式各样的验证码

    标题 "20120102 (ASPNET)各式各样的验证码" 指的是一个关于ASP.NET平台下验证码技术的资源集合。验证码(CAPTCHA)是一种防止自动化程序(如机器人)非法操作的手段,通常用于网页表单提交、注册、登录等场景,以...

Global site tag (gtag.js) - Google Analytics