zoukankan      html  css  js  c++  java
  • C语言-冒泡排序(4种表示)

    • 首先,把10个数里最小的个数放到下标为0的位置上(str[0])
    • 通过将下标为0的数(str[0])与剩下其余9个数进行对比交换(将较少者放置在下标为0的位置上),就可以得到这10个数最小的那个
    • 10个数最小的那位确定后,接下来就要找剩下9个数最小的那个。
    • 因为已经确定出一个最小的数,所以就不要动str[0],直接从str[1]开始,与剩下的8个数对比交换,找出9个数中最小的那位放到下标为1(str[1])的位置上
    • 继续按照这个思路就可以将这十个数变成有序的(从小到大)的数组
    冒泡排序1
    #include <stdio.h> void swap(int *a, int *b); //交换两个数 int main() { int str[10]; int i, j; //初始化数组为10 9 8 7 6 5 4 3 2 1 for (i = 0; i < 10; i++) { str[i] = 10 - i; } //排序,从a[0]开始排,从小到大 for (i = 0; i < 10; i++) { for (j = i + 1; j < 10; j++) { if (str[i] > str[j]) { swap(&str[i], &str[j]); } } } //将十个数输出 for (i = 0; i < 10; i++) printf("%d ", str[i]); return 0; } void swap(int *a, int *b) { int c; c = *a; *a = *b; *b = c; }
    冒泡排序2
    void BubbleSort3(int a[], int n)  
    {  
        int j, k;  
        int flag;  
          
        flag = n;  
        while (flag > 0)  
        {  
            k = flag;  
            flag = 0;  
            for (j = 1; j < k; j++)  
                if (a[j - 1] > a[j])  
                {  
                    Swap(a[j - 1], a[j]);  
                    flag = j;  
                }  
        }  
    }  
    冒泡排序3 
    void BubbleSort2(int a[], int n)  
    {  
           int j, k;  
           bool flag;  
           k = n;  
           flag = true;  
           while (flag)  
           {  
                  flag = false;  
                  for (j = 1; j < k; j++)  
                         if (a[j - 1] > a[j])  
                         {  
                                Swap(a[j - 1], a[j]);  
                                flag = true;  
                         }  
                  k--;  
           }  
    }  
    冒泡排序4  
    void BubbleSort1(int a[], int n)  
    {  
           int i, j;  
           for (i = 0; i < n; i++)  
                  for (j = 1; j < n - i; j++)  
                         if (a[j - 1] > a[j])  
                                Swap(a[j - 1], a[j]);  
    }  
  • 相关阅读:
    如何保持页脚始终在页面底部
    CSS自适应宽度圆角按钮
    ACM1004
    java输出格式
    北大ACM1001题Exponentiation(求高精度幂)
    深入理解sizeof
    java之类BigDecimal
    ACM1003
    ACM1005
    C的输出格式printf
  • 原文地址:https://www.cnblogs.com/CLiOS/p/5351221.html
Copyright © 2011-2022 走看看