冒泡排序

//有时候其实sort排序并不能解决一些问题,所以我们就需要用简单的冒泡排序啦
#include <iostream>
using namespace std;
const int maxn=1e7;
int data[maxn];
int main()
{
    int m;
    while(cin>>m)
    {
        int tmp;
        for(int i=0;i<m;i++)
        cin>>data[i];
        for(int i=0;i<m-1;i++)//从小到大排序
            for(int j=0;j<m-1-i;j++)
                if(data[j]>data[j+1])//要是前一个比后一个大就换
                   {
                       tmp=data[j];
                       data[j]=data[j+1];
                       data[j+1]=tmp;
                   }//如果从大到小排就是把data[j]>data[j+1]换成data[j]<data[j+1]
        for(int i=0;i<m-1;i++)
            cout<<data[i]<<" ";
        cout<<data[m-1]<<endl;
    }
    return 0;
}
时间: 2024-11-17 14:38:15

冒泡排序的相关文章

[数据结构] 冒泡排序

概述 冒泡排序通过重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,直到没有再需要交换的元素为止(对n个项目需要O(n^2)的比较次数).这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端. 实现步骤 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.这步做完后,最后的元素会是最大的数. 针对所有的元素重复以上的步骤,除了最后一个. 持续每次对越来越少的元素重复上面的步骤,直

1排序-c#中的字母冒泡排序 请各位大神指导

问题描述 c#中的字母冒泡排序 请各位大神指导 如何完成字母的冒泡排序 例如 ab abc等相比 那个在先 该怎么写 请各位大神指导下 谢谢

内部排序算法:冒泡排序

基本思想 将被排序的记录数组R[0..n-1]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡.根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其 向上"飘浮".如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止. 具体过程,如下所示: 初始状态:R[0..n-1]为无序区. 第一趟扫描:从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下.重者 在上,则交换二者的位置,即依次比较(R[n-1], R[n-2]).(R

c++ 模板-模板函数冒泡排序的形参size是什么

问题描述 模板函数冒泡排序的形参size是什么 template void bubbleSort(T(&arr)[size]) { if (NULL == arr) return; if (0 >= size) return; int i = 0; int j = 0; T temp; for (; i < size - 1; i++) { for (j = 0; j < size - 1 - i; j++) { if (arr[j]>arr[j + 1]) temp =

一断冒泡排序和一个闭包的例子。

写一断冒泡排序和一个闭包的例子,提供新手学习使用. 冒泡排序 var bubbleSort = function(array){       var i = 0, len = array.length, j, d;               for(; i<len; i++){           for(j=0; j<len; j++){               if(array[i] < array[j]){                   d = array[j];  

冒泡排序算法:冒泡排序算法的PHP实现及源码

基本概念:冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.至此第一趟结束,将最大的数放到了最后.在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,

C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序

插入|排序|算法 本文介绍了C#的四种排序算法:冒泡排序.选择排序.插入排序和希尔排序 冒泡排序 using System: namespace BubbleSorter { public class BubbleSorter { public void Sort(int [] list) { int i,j,temp: bool done=false: j=1: while((j<list.Length)&&(!done)) { done=true: for(i=0:i<li

冒泡排序算法

简化版的桶排序不仅仅有上一节所遗留的问题,更要命的是:它非常浪费空间!例如需要排序数的范围是0~2100000000之间,那你则需要申请2100000001个变量,也就是说要写成int a[2100000001].因为我们需要用2100000001个"桶"来存储0~2100000000之间每一个数出现的次数.即便只给你5个数进行排序(例如这5个数是1,1912345678,2100000000,18000000和912345678),你也仍然需要2100000001个"桶&q

PHP实现冒泡排序

<大话数据结构>中这样介绍冒泡排序的基本思想:两两比较相邻元素的关键字,如果反序则交换,直到没有反序的记录为止.也就是相邻元素之间两两比较,如果前一个值大于后一个(或者前一个值小于后一个),则交换顺序,所以这样的话,最终的结果是从小到大(或者从大到小)的排序. 当然php有非常强大的排序函数,比如sort,asort等,所以也在运用php的时候也用不着自己写排序函数,这里只是用php实现下冒泡排序的思想. 1 <?php 2 include_once './header.php'; 3

内部排序:冒泡排序和选择排序

前言 之所以把冒泡排序和选择排序放在一起,是因为二者的实现代码很相似,而且都是最基本的排序方式,非常容易理解和实现.当然,如果仅仅是为了讲述这两种排序方式,那也根本没必要写这篇博文了.和上篇博文一样,我会在冒泡排序和选择排序原始代码的基础上给出一些改进和优化,这才是本文的重点所在. 原始冒泡排序 冒泡排序的思想很简单,如果要求排序后序列中元素按照从小到大的顺序排列,则冒泡排序的步骤如下: 1.依次比较序列中相邻的两个元素,将较大的放在后面,这样一趟比较后,最大的元素就放在了最后的一个位置: 2.