这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码。

选择排序法比较的范围是整个列表,每次扫描结束找出最小的一个元素一次放在前面的位置;而冒泡排序法每次是将相邻两个元素进行比较,将较大的元素放在后面,这样一次扫描结束后就将当前最大的那个元素放在了列表的后面。

两个排序方法的算法如下:

选择排序法

SelectionSort(A[0....n-1])

//输入:一个可排序数组A[0....n-1],

//输出:升序排序的数组A[0....n-1]

for    i

min

for j

if A[j]  <  A[min]     min

swap A[i] and A[min];

该算法的输入规模就是元素的个数n,基本操作就是if语句中比较的步骤:A[j]  <  A[min],比较的执行次数为:(n-1)n/2,也就是Θ(n2)。

冒泡排序算法:

BubbleSort(A[0....n-1])

//输入:一个可排序数组A[0....n-1]

//输出:升序排序的数组A[0....n-1]

for    i

for j

if A[j+1]

swap A[j+1]andA[j]

该算法的时间复杂度和选择排序的时间复杂度一样都是Θ(n2)。

#include

using namespace std;

void SelectionSort(int iSort[], int n);

void BubbleSort(int iSort[], int n);

void swap(int &a, int &b);

//-------------------主函数-------------------

int main(){

int a[];

for (int i = ; i < ; i++){

cin >> a[i];

}

getchar();

//SelectionSort(a, 10);

//这里传递的实参是数组名,

//也就是将地址进行传递,这样被调用的函数就能够改变数组a的值。

BubbleSort(a, );

for (int i = ; i < ; i++){

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

}

getchar();

return ;

}

//-------------------选择排序法-------------------

void SelectionSort(int iSort[],int n){

int i = , j = ,min=;

for (i = ; i < n - ; i++){

min = i;

for (j = i + ; j < n ; j++){

if (iSort[j]iSort[min])即可

min = j;

}

}

swap(iSort[i], iSort[min]);

}

}

//-------------------冒泡排序法-------------------

void BubbleSort(int iSort[], int n){

int i = , j = ;

for (i = ; i < n - ; i++){

for (j = ; j < n - - i; j++){

if (iSort[j + ] < iSort[j]){

swap(iSort[j + ], iSort[j]);

}

}

}

}

//-------------------交换元素-------------------

void swap(int &a, int &b){

int temp;

temp = a;

a = b;

b = temp;

}

C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 /*简单交换法排序 根据序列中两个记录键值的比较结果来对换这两 ...

Java-数据结构与算法-选择排序与冒泡排序

Java 选择排序与冒泡排序 1.DataSorter.java public class DataSorter { //冒泡排序法 //主要思路:按升序排序,数组元素两两比较,大的立即排后面 pub ...

java 选择排序与冒泡排序

选择排序与冒泡排序的特点与区别 ++++++++++++++++++++++++++++++++++++++++++++++ 选择排序 这一种简单的排序方法,它的基本思想是:R[n]第一次从R[0]~ ...

java 选择排序、冒泡排序、折半查找

public class SortAndSelectDemo{ public static void main(String[] args){ int[] arr = {3, 5, 17, 2, 11 ...

c&sol;c&plus;&plus; 算法之快速排序法 冒泡排序法,选择排序法,插入排序法

本文详细叙述和实现了快速排序算法,冒泡排序 选择排序 插入排序比较简单,原理在这里不再详述,直接用代码进行了实现. 快速排序法(quicksort)是目前所公认最快的排序方法之一(视解题的对象而定), ...

基本的排序算法C&plus;&plus;实现&lpar;插入排序,选择排序,冒泡排序,归并排序,快速排序,最大堆排序,希尔排序&rpar;

博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/8529525.html特别不喜欢那些随便转载别人的原创文章又不给 ...

C&num; 冒泡排序法、插入排序法、选择排序法

冒泡排序法 是数组等线性排列的数字从大到小或从小到大排序. 以从小到大排序为例. 数据 11, 35, 39, 30, 7, 36, 22, 13, 1, 38, 26, 18, 12, 5, 45, ...

关于Java中的选择排序法和冒泡排序法

一,这种方法是直接传入一个数组进行排序(选择排序法) public static void selectSort(int arr[]){ for (int i = 0; i < arr.leng ...

常见排序算法总结&colon;插入排序,希尔排序,冒泡排序,快速排序,简单选择排序以及java实现

今天来总结一下常用的内部排序算法.内部排序算法们需要掌握的知识点大概有:算法的原理,算法的编码实现,算法的时空复杂度的计算和记忆,何时出现最差时间复杂度,以及是否稳定,何时不稳定. 首先来总结下常用内 ...

随机推荐

UI4&lowbar;UIImageView

// // ViewController.m // UI4_UIImageView // // Created by zhangxueming on 15/7/1. // Copyright (c) ...

一行很好的JS代码

[].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.rand ...

android Handler错误,不同的包Handler

1. import java.util.logging.Handler;这个包了会自动生成如下方法.当时还觉得和以前的不一样了,本不在意. Handler handler1= new Handler( ...

markdown与textile之间互相转换

markdown与textile之间互相转换 redmine中默认使用的是textile那么从别的地方复制过来的markdown格式的内容需要进行转换 找到一款工具叫做pandoc http://jo ...

Django-RQ首页、文档和下载 - Django 和 RQ 集成 - 开源中国社区

Django-RQ首页.文档和下载 - Django 和 RQ 集成 - 开源中国社区 Django-RQ 项目实现了 Django 框架和 RQ 消息队列之间的集成.

CSS优先级总结&lpar;转载&rpar;

样式的优先级 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External styl ...

Ubuntu 安装 Docker CE

注:本文转载自 警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. 准备工作 系统要求 Docker CE 支持以下版本的 ...

Git学习篇之git remote add origin错误

提示出错信息:fatal: remote origin already exists. 解决办法如下: 1.先输入$ git remote rm origin 2.再输入$ git remote ad ...

Enterprise Library

https://msdn.microsoft.com/en-us/library/ff648951.aspx

避免string&period;Format方法的装箱

我们知道,使用string.Format方法可能会存在装箱的情况.比如如下: static void Main(string[] args) { string s = string.Format(&q ...

蛮力法查找有序数列c语言,算法——蛮力法之选择排序和冒泡排序c++实现相关推荐

  1. 各种排序算法以及扩展(选择排序,冒泡排序,插入排序,归并排序,最小和问题,堆排序,荷兰国旗问题,快速排序)

    文章目录 基础算法一二课 选择排序 冒泡排序 插入排序 判断数据是否在数组中 找满足>=value的最左位置 ^ 异或符号的多用 一.进行交换 二.数组中有一种数出现了奇数次,其他数都出现了偶数 ...

  2. C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

    C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来 ...

  3. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...

    #include #include void SelectSort(int *a,int n);//预声明要调用的函数 int main(void) { int k; int x[]={,,,,,,, ...

  4. C语言排序算法(一)——选择排序实现

    C语言排序算法(一)--选择排序实现 编写程序,实现从键盘输入10个数,并用选择法从小到大排序. 简单选择排序的基本思想:第1趟,在待排序记录r[1]r[n]中选出最小的记录,将它与r[1]交换:第2 ...

  5. 图解排序算法之谈「选择排序」

    1. 基本思想 选择排序(Select Sort)同样是最基础的排序算法之一,它的核心思想是:将要排序的序列分成有序和无序两个部分,开始时有序部分为空,然后经过 n - 1 次遍历,每次遍历都在无序部 ...

  6. Java小结(四)——折半查找、选择排序、冒泡排序

    最常见的一些基本算法,比如折半查找,选择排序,冒泡排序. 折半查找,是它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列     即数组内元素必须是 ...

  7. c语言入门中冒泡排序的例题,选择排序和冒泡排序例题解析(c语言)

    排序算法排序算法 1.简单选择排序简单选择排序 假设有 n 个数,作简单选择排序简单选择排序,按升序排列: 先通过 n-1 次比较,从 n 个值中找出最小值,将它与第一个值交换. 再通过 n-2 次比 ...

  8. 【简单排序算法】:简单选择排序、直接插入排序和冒泡排序

    [简单排序算法]:简单选择排序.直接插入排序和冒泡排序 简单选择排序: 原理:设所排序序列的记录个数为n.i取1,2,-,n-1,每次从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出最小的记录 ...

  9. 选择排序法和冒泡排序法

    选择排序法和冒泡排序法 1.选择排序法(以从小到大排序为例) 算法思想: A.在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 B.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序 ...

最新文章

  1. Spring Cloud Alibaba:Sentinel 熔断降级
  2. 牛客 contest897 C-Latale(树上dp)
  3. React 中 keys 的作用是什么?
  4. GlusterFS架构与维护
  5. erp系统原理和实施第五版pdf_【图片】生产制造企业ERP系统选型及实施“避坑”指南!【企业管理软件吧】...
  6. Dictionary加速查询(TryGetValue)
  7. 3-1:常见任务和主要工具之软件包管理
  8. 日语学习-多邻国-兴趣爱好
  9. python //运算符
  10. 利用DBMS_ROWID.ROWID_CREATE来找出事务等待的行数据
  11. Java思维导图(3)
  12. 安装WIN 7 64位Windows6.1-KB2999226-x64.msu
  13. ZigBee Zstack协议栈
  14. 临床阅片有新招!华为与维卓致远发布三维影像阅片系统
  15. 【台达 PLC - 1】 - 编程软件(WPL)
  16. 戴个美瞳却患上了角膜炎和干眼症?
  17. 用Python做一只真·多足机器人,钢铁蜈蚣能弯曲还能蠕动
  18. 应用于素描人脸识别的迁移学习
  19. Revit二次开发之技能篇(一)———轴网自动对齐
  20. 计算机房灭火器单具基准,发电站灭火器配置说明资料.ppt

热门文章

  1. Linux-CentOS上的服务搭建
  2. 180天如何突击高考-从400到550?
  3. html2d动画,HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
  4. C/C++:计算N的N次方的个位数(火眼金睛找规律,解决此题数据问题)
  5. 我对技术的态度是什么样的?
  6. 笔记|matplotlib 技巧|使用 gricspec 实现的不同大小子图
  7. 技术写作中的那些神兵利器
  8. Data Modle:游戏对战模型
  9. 让iOS Safari浏览器支持油猴脚本
  10. android数据库工具 SQLiteSpy下载 sharePlus.Sqlite下载 DB.Browser.for.SQLite下载