码迷,mamicode.com
首页 > 编程语言 > 详细

Java 冒泡排序

时间:2016-06-22 12:55:54      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:java 冒泡排序

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

原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,


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


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


例子为从小到大排序,


原始待排序数组| 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();
        }

这道题 好多面试都有问道。或者是笔试又或者是机试。所以还是好好看看的好。

Java 冒泡排序

标签:java 冒泡排序

原文地址:http://15129824665.blog.51cto.com/10510385/1791650

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!