c++冒泡排序示例分享
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。由于冒泡排序简洁的特点,它通常被用来对于计算机程序设计入门的学生介绍算法的概念。
#include <stdio.h>
int swap(int *a, int *b)
{
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
return 0;
}
int mao_pao(int *a, int n)
{
int i, j, flag;
for(i = n - 1, flag = 1; i > 0 && flag ; --i)
{
flag = 0;
for(j = 0; j < i; ++j)
{
if(a[j] > a[j + 1])
{
flag = 1;
swap(a + j, a + j + 1);
}
}
}
return 0;
}
int main(int argc, const char *argv[])
{
int i;
int a[] = {7,8,6,2,9,4,3,1,5,10};
mao_pao(a, 10);
for(i = 0; i < 10; ++i)
{
printf("%4d", a[i]);
}
printf("\n");
return 0;
}
相关推荐
-
C++冒泡排序算法实例
冒泡排序 大学学习数据结构与算法最开始的时候,就讲了冒泡排序:可见这个排序算法是多么的经典.冒泡排序是一种非常简单的排序算法,它重复地走访过要排序的数列,每一次比较两个数,按照升序或降序的规则,对比较的两个数进行交换.比如现在我要对以下数据进行排序: 10 3 8 0 6 9 2 当使用冒泡排序进行升序排序时,排序的步骤是这样的: 3 10 8 0 6 9 2 // 10和3进行对比,10>3,交换位置 3 8 10 0 6 9 2 // 10再和8进行对比,10>8,交换位置 3 8 0
-
C++实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
本文实现了八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 .快速排序.归并排序.堆排序和LST基数排序 首先是算法实现文件Sort.h,代码如下: /* * 实现了八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 * 以及快速排序.归并排序.堆排序和LST基数排序 * @author gkh178 */ #include <iostream> template<class T> void swap_value(T &a, T &b) { T t
-
C++ 冒泡排序数据结构、算法及改进算法
程序代码如下: 复制代码 代码如下: // BubbleSort.cpp : 定义控制台应用程序的入口点.//#include "stdafx.h"#include <cmath>#include <iostream>using namespace std;#define MAXNUM 20template<typename T>void Swap(T& a, T& b){ int t = a; a = b; b
-
c++冒泡排序详解
说一说冒泡排序 冒泡排序,作为最基本的排序算法,由于原理像冒泡一样,所以取名为冒泡排序: 我们知道,水泡在上升时,总是密度最小的最先上去,假如一个水层只能容纳一个水泡,那么水泡由上到下的排序就是密度逐渐增大的排序.类似的,我们可以实现一个相似的排序算法,冒泡排序.原理图(在网上找的) 具体代码: #include <iostream> #include <math.h>//待会会用到swap交换函数 using namespace std; int main() { int a[5
-
c++冒泡排序示例分享
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端,故名.由于冒泡排序简洁的特点,它通常被用来对于计算机程序设计入门的学生介绍算法的概念. 复制代码 代码如下: #include <stdio.h>int swap(int *a,
-
javascript请求servlet实现ajax示例(分享)
ajax请求是一种无刷新式的用户体验,可以发送GET和POST两种异步请求,现记录如下: GET请求: function sendRequestByGet(){ //定义异步请求对象 var xmlReq; //检测浏览器是否直接支持ajax if(window.XMLHttpRequest){//直接支持ajax xmlReq=new XMLHttpRequest(); }else{//不直接支持ajax xmlReq=new ActiveObject('Microsoft.XMLHTTP')
-
adonet基础示例分享(adonet连接数据库)
adonet基础示例分享 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using Sys
-
Java简单冒泡排序示例解析
冒泡排序: 从小到大排序: package com.etime.test019; import java.util.Arrays; public class Test13 { public static void main(String[] args) { int[] array = { 6, 1, 2, 3, 8, 5, 4, 9, 7 }; int len = array.length; System.out.println("排序前的数组为:"+Arrays.toString(a
-
java贪心算法初学感悟图解及示例分享
算法简介 1)贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致是最好或者最优的算法 2)贪心算法所得到的结果不一定是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果. 应用场景 --> 集合覆盖 public class GreedyAlgorithm { public static void main(String[] args) { // 创建广播电台,放入到Map HashMap<String, HashSet<
-
Composition Api封装业务hook思路示例分享
目录 前序 hook的场景 useGetJobList 共同 思路历程 心得 utils 和 hook 的区别 总结 前序 近期公司的新项目一个小程序,一直想尝试 Vue3 开发项目,苦于自己的驱动力不行,学的零零碎碎的.因此小程序我直接跟项目组长说我要使用 uniapp 的 Vue3 版进行开发.开发中遇到业务场景相同的,就分装了一个hook 来减少代码,易于维护. hook的场景 这种获取列表的需求很常见吧,在我这个小程序中有3处使用到了获取列表的功能.分别是: 我的收藏.已投递岗位.未投递
-
GO语言操作Elasticsearch示例分享
目录 Elasticsearch简介 连接Elasticsearch 创建索引 创建model结构体 初始化model 创建索引 搜索数据 创建返回结构体 搜索数据 解析数据 修改数据 单条修改 批量修改 删除数据 单条删除 批量删除 Elasticsearch简介 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上. Lucene 可以说是当下最先进.高性能.全功能的搜索引擎库–无论是开源还是私有. 连接Elasticsearch
-
TypeScript实现十大排序算法之冒泡排序示例详解
目录 一. 冒泡排序的定义 二. 冒泡排序的流程 三. 冒泡排序的图解 四. 冒泡排序的代码 五. 冒泡排序的时间复杂度 六. 冒泡排序的总结 一. 冒泡排序的定义 冒泡排序是一种简单的排序方法. 基本思路是通过两两比较相邻的元素并交换它们的位置,从而使整个序列按照顺序排列. 该算法一趟排序后,最大值总是会移到数组最后面,那么接下来就不用再考虑这个最大值. 一直重复这样的操作,最终就可以得到排序完成的数组. 这种算法是稳定的,即相等元素的相对位置不会发生变化. 而且在最坏情况下,时间复杂度为O(
-
angularJS 中input示例分享
这里给大家分享一则input指令的使用示例 复制代码 代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <script src="http://localhost:81/js/jquery.js"> </script> <scri
-
Vue.js学习示例分享
本篇和大家分享的是学习Vuejs的总结和调用webapi的一个小示例: » Vuejs - 学习大杂烩 » WebApi + Vue.js 示例 下面一步一个脚印的来分享: » Vuejs - 学习大杂烩 首先,咋们要学习一个js框架,那么肯定要引入该框架的基础库,这里我创建一个页面并且引用官网的库是: <script src="https://unpkg.com/vue/dist/vue.js"></script> 下面我们来看一段Vue的基础使用代码: va
随机推荐
- AngularJS 模块详解及简单实例
- 实例讲解javascript注册事件处理函数
- CKEditor 取消转义的两种方法
- VueJS组件之间通过props交互及验证的方式
- Java concurrency集合之ConcurrentSkipListMap_动力节点Java学院整理
- Perl访问MSSQL并迁移到MySQL数据库脚本实例
- 使用Asp.net Mvc3 Razor视图方式扩展JQuery UI Widgets方法介绍
- Android ListView详解
- MySql 5.6.36 64位绿色版安装图文教程
- linux Shell入门:掌握Linux,OS X,Unix的Shell环境
- Powershell改变脚本执行优先权的代码分享
- 基于jquery的一个简单的脚本验证插件
- jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
- 微信小程序 实战实例开发流程详细介绍
- jqPlot 图表中文API使用文档及源码和在线示例
- 完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
- javaScript给元素添加多个class的简单实现
- java实现递归文件列表的方法
- java使用servlet实现验证码
- SuperSocket入门--Telnet服务器和客户端请求处理