注册 登录
编程论坛 C++教室

一个for循环完成冒泡排序

lyb661 发布于 2019-01-10 14:57, 2071 次点击
///一个for循环完成冒泡排序

#include <iostream>
using namespace std;

void swap_arr(int& a,int& b)
{
    int temp=a;
    a=b;
    b=temp;
}

void print_arr(int a[],int n)
{
    for(int i=0;i<n;i++){
        if(i>0)
            cout<<" ";
        cout<<a[i];
    }
}

void bubble_sort(int a[],int n)
{
    for(int i=0;i<n-1;i++){
        if(a[i]>a[i+1])
            swap_arr(a[i],a[i+1]);
        if(i==n-2){      //当i的自增到本轮循环最大
            i=-1;    //i赋值-1开始新一轮循环
            n--;     //i的值自增 n的值自减
        }
    }
}

int main() {
    int a[]={31,25,64,53,84,41,79};
    int n=sizeof a/sizeof a[0];
    print_arr(a,n);

    cout<<"\n--------split Line-----------\n";

    bubble_sort(a,n);
    print_arr(a,n);

    return 0;
}



[此贴子已经被作者于2019-1-10 15:01编辑过]

3 回复
#2
幽竹烟雨2019-01-10 22:18
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int v=0,l=0;
    int a[]={31,25,64,53,84,41,79};
    int n=sizeof a/sizeof a[0];
    while(l<7)
    {
        cout<<a[l]<<" ";
        l++;
    }
    cout<<"\n--------split Line-----------\n";
    sort(a,a+7);
    while(v<7)
    {
        cout<<a[v]<<" ";
        v++;
    }
    return 0;
}

0个for循环完成sort排序

简单有效易懂
#3
lyb6612019-01-11 02:07
学习排序法,是为了加深对C语言底层技术的理解。如果选择C语言泛型编程与标准库,当然方便!
#4
幽竹烟雨2019-01-11 21:58
嗯嗯,是的,学习了。
1