zoukankan      html  css  js  c++  java
  • 排序算法之----冒泡排序

    #include <stdio.h>
    #include <stdlib.h>
    
    //冒泡排序非正式版
    //默认从小到大排序
    //时间复杂度:n+n-1+n-2+......+1 即(n+1)n/2,O(n^2)
    void BublbleSort1(int k[], int n)
    {
        int i, j, tmp;
        for (i = 0; i < n - 1; i++)
        {
            for (j = i + 1; j < n; j++)
            {
                if (k[i] > k[j])
                {
                    tmp  = k[i];
                    k[i] = k[j];
                    k[j] = tmp;
                }
            }
        }
    }
    
    //冒泡排序正式版
    //基本思想:两两相邻记录的关键字,如果反序则交换,直到没有反序为止
    //最坏情况和BublbleSort1执行次数相同,对于特殊的序列,效率大大提升
    void BublbleSort2(int k[], int n)
    {
        int i, j, tmp;
        bool  flag = true;
        for (i = 0; ((i < n - 1 )&& flag); i++)
        {
            flag = false;
            for (j = n-1; j > i; j--)
            {            
                if (k[j-1] > k[j])
                {
                    tmp = k[j-1];
                    k[j-1] = k[j];
                    k[j] = tmp;
                    flag = true;
                }
            }
        }
    }
    
    void print(int a[], int num)
    {
        int i = 0;
        for (i = 0; i < num; i++)
        {
            printf("%d ", a[i]);
        }
        printf("
    ");
    }
    
    int main()
    {
        int a[10] = { 2, 3, 56, 1, 4, 7, 8, 94, 3, 10 };
        BublbleSort2(a, 10);
        print(a, 10);
        return system("pause");
    }
  • 相关阅读:
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    PHP中foreach用法详细讲解
  • 原文地址:https://www.cnblogs.com/henkk/p/11205890.html
Copyright © 2011-2022 走看看