zoukankan      html  css  js  c++  java
  • 冒泡排序

      

    思想:一个待排数组从第一个元素开始,每个元素都与自己后一个元素进行比较(  s[i]>s[i+1] //从小到大排序  ),大于后一个元素时两元素进行互换,以此类推,第一趟排序后整个数组中最大的元素已排在最末位。重复以上步骤。

    初始数组:

        0    1    2    3    4     5    6    7    8    9

      9  4  6  1  3  2  5  7  8  0

    第一趟排序后:

        0    1    2    3    4     5    6    7    8    9

      4  6  1  3  2  5  7  8  0  9

    第二趟排序后:

        0    1    2    3    4     5    6    7    8    9

      4  6  1  2  3  5  7  0  8  9

    每次排序后已排好元素不再进行排序,以此类推,当只剩最后一位时排序已完成。

    c代码:

    #include <stdio.h>
    #include <stdlib.h>
    
    void BubbleSort(int n,int s[])
    {
        int temp;
        for(int i=n-1; i>0; i--)  //第一层循环是去掉已排好的元素
        {
            for(int j=0; j<i; j++)
            {
                if(s[j]>s[j+1])
                {
                    temp=s[j];
                    s[j]=s[j+1];
                    s[j+1]=temp;
                }
            }
        }
    }
    int main()
    {
        int n;
        int s[50];
        scanf("%d",&n);
        for(int i=0; i<n; i++)
        {
            scanf("%d",&s[i]);
        }
        BubbleSort(n,s);
        for(int i=0;i<n;i++)
        {
            printf("%d ",s[i]);
        }
        return 0;
    }
  • 相关阅读:
    Linux/Unix中的#!和!#
    包含min函数的栈
    顺时针打印矩阵
    二叉树镜像
    数的子结构
    合并两个排序的链表
    反转链表
    链表中倒数第K个结点
    调整数组顺序使奇数位于偶数前面
    在O(1)时间删除链表结点
  • 原文地址:https://www.cnblogs.com/xxaf/p/12677714.html
Copyright © 2011-2022 走看看