• 经典排序算法


    经典排序算法 - 冒泡排序Bubble sort

    其原理是比较接近的数字22,按照从小到交换大或降序排列,

    这样一趟过去后,最大或最小的数字被交换到了最后一位,

    然后再从头開始进行两两比較交换,直到倒数第二位时结束,其余类似看样例

    样例为从小到大排序,

    原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 |


    第一趟排序(外循环)

    第一次两两比較6 > 2交换(内循环)

    交换前状态| 6 | 2 | 4 | 1 | 5 | 9 |

    交换后状态| 2 | 6 | 4 | 1 | 5 | 9 |

     

    第二次两两比較,6 > 4交换

    交换前状态| 2 | 6 | 4 | 1 | 5 | 9 |

    交换后状态| 2 | 4 | 6 | 1 | 5 | 9 |

     

    第三次两两比較,6 > 1交换

    交换前状态| 2 | 4 | 6 | 1 | 5 | 9 |

    交换后状态| 2 | 4 | 1 | 6 | 5 | 9 |

     

    第四次两两比較,6 > 5交换

    交换前状态| 2 | 4 | 1 | 6 | 5 | 9 |

    交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |

     

    第五次两两比較,6 < 9不交换

    交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |

    交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |

     

    第二趟排序(外循环)

    第一次两两比較2 < 4不交换

    交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |

    交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |

     

    第二次两两比較,4 > 1交换

    交换前状态| 2 | 4 | 1 | 5 | 6 | 9 | 
    交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

     

    第三次两两比較,4 < 5不交换

    交换前状态| 2 | 1 | 4 | 5 | 6 | 9 | 
    交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

     

    第四次两两比較,5 < 6不交换

    交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |

    交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

     

    第三趟排序(外循环)

    第一次两两比較2 > 1交换

    交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

    交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

     

    第二次两两比較,2 < 4不交换

    交换后状态| 1 | 2 | 4 | 5 | 6 | 9 | 
    交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

     

    第三次两两比較,4 < 5不交换

    交换后状态| 1 | 2 | 4 | 5 | 6 | 9 | 
    交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

     

    第四趟排序(外循环)无交换

    第五趟排序(外循环)无交换


    排序完成,输出终于结果1 2 4 5 6 9

    代码仅供參考

    复制代码
            static void bubble_sort(int[] unsorted)
            {
                for (int i = 0; i < unsorted.Length; i++)
                {
                    for (int j = i; j < unsorted.Length; j++)
                    {
                        if (unsorted[i] > unsorted[j])
                        {
                            int temp = unsorted[i];
                            unsorted[i] = unsorted[j];
                            unsorted[j] = temp;
                        }
                    }
                }
            }
    
            static void Main(string[] args)
            {
                int[] x = { 6, 2, 4, 1, 5, 9 };
                bubble_sort(x);
                foreach (var item in x)
                {
                    Console.WriteLine(item);
                }
                Console.ReadLine();
            }
    复制代码

     

    冒泡排序动画演示

    bubble_sort_animation

     

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    整数的唯一分解定理【模板】
    poj 1419Graph Coloring 【dfs+补图+计算最大团+计算最大独立集 【模板】】
    poj 1065 Wooden Sticks 【贪心 新思维】
    poj 3126 Prime Path 【bfs】
    hihocoder 第五十二周 高斯消元·二【高斯消元解异或方程 难点【模板】】
    poj 1840 Eqs 【解五元方程+分治+枚举打表+二分查找所有key 】
    poj 1019 Number Sequence 【组合数学+数字x的位宽函数】
    括号匹配
    Digit
    Ace of Aces
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4750360.html
Copyright © 2020-2023  润新知