算法排序----时间复杂度O(n^2)的排序方式
<div id="cnblogs_post_body"> 排序算法也就是我们通常说的将一组数据依照特定排序方式的一种算法。排序算法的输出必须要遵循两个原则:
1.输出的结果为递增数列(递增针对所需的排序顺序而言)
2.输出的结果为原输入的一种排列或重组。
今天介绍的都是平均时间复杂度为O(N^2)的排序算法,即:冒泡排序、插入排序和选择排序 。
1.冒泡排序
顾名思义就是谁冒泡泡冒的快,上升的就快。 看下图:
http://pic002.cnblogs.com/images/2012/311384/2012081018352376.jpg
http://pic002.cnblogs.com/images/2012/311384/2012081018355096.jpg
http://pic002.cnblogs.com/images/2012/311384/2012081018381726.jpg
相信大家一看 就很明白,首选将两个数据进行比较,遇见比自己的大的数据,接着向后找,直到找到比自己小的数据,然后进行交换,第二个数据依次论推
上代码:
<div class="cnblogs_code"> 1/*冒泡排序 复杂度O(n^2) 2 * 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 3 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 4 3.针对所有的元素重复以上的步骤,除了最后一个。 5 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 6 */ 7 public List<int> BubbingSort(List<int> arr) 8 { 9 int temp = 0;10 11 for (int i = 0; i < arr.Count; i++)12 {13 for (int j = i + 1; j < arr.Count; j++)14 {15 if (arr > arr)16 {17 temp = arr;18 arr = arr;19 arr = temp;20 }21 }22 }23 return arr;24
页:
[1]