首页 > 编程语言 > 详细

冒泡排序以及冒泡排序的优化

时间:2015-03-15 19:32:23      阅读:242      评论:0      收藏:0      [点我收藏+]

说明:很简答的优化,却有很多人容易在面试时候栽在这个简单的问题上。

“冒泡排序”在面试中是很容易被问到的排序算法,也是最简单的排序算法,当被问到,“冒泡排序怎么优化?”,很多人就懵了,冒泡还能优化?答案是可以的。

1. 这是一般的冒泡排序。

 1         /// <summary>
 2         /// 通俗冒泡
 3         /// </summary>
 4         public static void BubbleSortCommon(int[] arr)
 5         {
 6             int temp;
 7             int len = arr.Length - 1;
 8             for (int i = 0; i < len; i++)
 9             {
10                 for (int j = 0; j < len - i; j++)
11                 {
12                     if (arr[j] > arr[j + 1])
13                     {
14                         temp = arr[j];
15                         arr[j] = arr[j + 1];
16                         arr[j + 1] = temp;
17                     }
18                 }
19             }
20         }

2. 这是优化后的冒泡排序。仅仅加了一个标识,相对于通俗的冒泡排序,却能更好地处理已经排好序或者几乎排好序的数组,避免做无用功。

 1         /// <summary>
 2         /// 优化冒泡
 3         /// </summary>
 4         public static void BubbleSortOptimize(int[] arr)
 5         {
 6             int flag = 0;
 7             int len=arr.Length-1;
 8             int temp;
 9             while (flag == 0)
10             {
11                 flag = 1;
12                 for (int i = 0; i < len; i++)
13                 {
14                     if (arr[i] > arr[i + 1])
15                     {
16                         temp = arr[i];
17                         arr[i] = arr[i + 1];
18                         arr[i + 1] = temp;
19                         flag = 0;
20                     }
21                 }
22                 len--;
23             }
24         }

 

冒泡排序以及冒泡排序的优化

原文:http://www.cnblogs.com/HuoAA/p/4340143.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!