冒泡排序 cpp实现

#include<bits/stdc++.h>
using namespace std;
void Bubblesort(int a[],int n){
    for(int i=0;i<n-1;i++){
        int flag = 0;
        for(int j=0;j<n-i-1;++j){   //注意内层是n-i-1就行
            if(a[j]>a[j+1]){
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
                flag=1;             //发生交换,改变flag值
            }
            if(flag==0 && j==n-i-1){
                return;             //如果内层循环一次结束都没有发生交换,说明已经排好顺序了,减少排序趟数
            }
        }//j
    }//i
}
int main(){
    int a[10]={3,9,6,4,2,1,0,32,4,23};
    int n=10;
    Bubblesort(a,n);
    for(int i=0;i<n;i++){
        cout<<a[i]<<" ";
    }
}

原文地址:https://www.cnblogs.com/lhw-/p/10552287.html

时间: 2024-10-08 02:00:26

冒泡排序 cpp实现的相关文章

CPP 1373 Easy as A+B(冒泡排序)

题目链接: http://cpp.zjut.edu.cn/ShowProblem.aspx?ShowID=1373 题面: Easy as A+B Time Limit:1000MS  Memory Limit:32768K Description: These days, I am thinking about a question, how can I get a problem as easy as A+B? It is fairly difficulty to do such a thi

C语言中的排序算法--冒泡排序,选择排序,希尔排序

冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端 维基百科:点击打开链接 [cpp] view plain copy /* 用选择法对10个数进行排序 */ #include<stdio.h> void main() { int i,j,

冒泡排序的三种实现

冒泡排序是非常容易理解和实现,,以从小到大排序举例: 设数组长度为N. 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换. 2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置. 3.N=N-1,如果N不为0就重复前面二步,否则排序完成. 按照定义很容易写出代码: [cpp] view plain copy //冒泡排序1 void BubbleSort1(int a[], int n) { int i, j; for (i 

插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序——C++实现

首先是算法实现文件Sort.h,代码如下: /* * 实现了八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 * 以及快速排序.归并排序.堆排序和LST基数排序 * @author gkh178 */ #include <iostream> template<class T> void swap_value(T &a, T &b) { T temp = a; a = b; b = temp; } //插入排序:时间复杂度o(n^2) template<

白话经典算法系列之一 冒泡排序的三种实现

分类: 白话经典算法系列 2011-08-06 19:20 93923人阅读 评论(72) 收藏 举报 算法优化 冒泡排序是非常容易理解和实现,,以从小到大排序举例: 设数组长度为N. 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换. 2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置. 3.N=N-1,如果N不为0就重复前面二步,否则排序完成. 按照定义很容易写出代码: [cpp] view plaincopy //冒泡

冒泡排序(算法源码)

算法源码: //BubbleSort.cpp #include <iostream>using namespace std; void BubbleSort(int a[], int n){ for(int i=n-1;i>0;i--) {for(int j=0;j<i;j++) { if (a[j]>a[j+1]) { int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } }}int main(){ int a[]={4,3,6,

函数的指针(一)写一个能对任意数组排序的冒泡排序

MyFunc.cpp文件内容 1 void swap (char *a, char *b, size_t width){ 2 char tmp; 3 while(width--){ 4 tmp = *a; 5 *a++ = *b; 6 *b++ = tmp; 7 } 8 } 9 //冒泡排序 base:数组首地址 num:数组元素个数 width:数组元素的字节 comp:为函数指针 10 void BubbleSort(void *base, size_t num, size_t width,

mpi冒泡排序并行化

一.实验目的与实验要求 1.实验目的 (1)学会将串行程序改为并行程序. (2)学会mpich2的使用. (3)学会openmp的配置. (4)mpi与openmp之间的比较. 2.实验要求 (1)将串行冒泡程序局部并行化,以降低时间消耗. (2) 理论上求出时间复杂度之比,根据结果得出时间消耗之比,进行比对分析. 二.实验设备(环境)及要求 Vs2013,mpich2 三.实验内容与步骤 1.实验一 mpi并行 (1)实验内容 1.写出一个冒泡排序程序,求出其时间复杂度,并运行得到相应的时间消

纪念逝去的岁月——C/C++冒泡排序

冒泡排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { int i = 0; for(i = 0; i < iLen; i++) { printf("%d ", iList[i]); } printf("\n"); } int bubbleSort(int iList[], int iLen) { int i = 0, j = 0; for(i = 0; i < i