算法-排序
→→→→
这个作者很懒,什么都没留下…
展开
-
冒泡排序
时间复杂度:O(n^2)空间复杂度:O(1)举例:【4,3,2,5】第一轮:比较4-3 得3425;比较4-2得3245;比较45得3245;第二轮:比较3-2得2345;比较3-4得2345;比较4-5得2345;第三轮:。。。 /// /// 冒泡排序 /// /// 待排数据原创 2013-10-17 08:49:27 · 340 阅读 · 0 评论 -
直接插入排序
时间复杂度:O(n^2)空间复杂度:O(1)举例:[4,3,1,5]第一轮: 比较4,3 -> 3,4,第二轮: 比较3,4,1->3,1,4->1,3,4第三轮: 比较1,3,4,5 /// /// 直接插入排序 /// /// 待排数据 public void Sort(i原创 2013-10-17 08:34:11 · 399 阅读 · 0 评论 -
简单选择排序
时间复杂度:O(n^2)空间复杂度:O(1)稳定性:不稳定举例:【4,3,5,1】第一轮:4,3,5,1 最小1得 1,3,5,4第二轮 1,3,5,4 最小3得 1,3,5,4第三轮 1,3,5,4 最小4得 1,3,4,5原创 2013-10-17 09:21:58 · 370 阅读 · 0 评论 -
希尔排序
时间复杂度:O(n*logn) 以2为底的对数空间复杂度:O(1)稳定性:不稳定举例:【4,3,7,2,5,1】d=6/2=3第一轮:4,3,7,2,5,1(分组情况) 从d+1开始循环遍历 所以 2,5,1分别与前面和自己一个分组的元素进行直接插入排序2,3,7,4,5,12,3,7,4,5,12,3,1,4,5,7第二轮。。。原创 2013-10-17 09:48:17 · 380 阅读 · 0 评论 -
快速排序
时间复杂度:O(n*logn) 以2为底的对数空间复杂度:O(logn) 以2为底的对数稳定性:不稳定举例:【3,1,5,6,7】 红色背景为基准第一轮:【3 (l),1,5,6,7(r)】【3 (l),1,5,6(r),7】【3 (l),1,5(r),6,7】【3 (l),1(r),5,6,7】【1 (l),3(r),5,6,7】 此时l处符合原创 2013-10-17 10:29:31 · 341 阅读 · 0 评论 -
基数排序
时间复杂度:-空间复杂度:-稳定性:稳定举例:【34,4,251】第一轮:0【】,1【251】,2【】,3【】,4【34,4】,5【】,6【】,7【】,8【】,9【】251,34,4第二轮:0【4】,1【】,2【】,3【34】,4【】,5【251】,6【】,7【】,8【】,9【】4,34,251第三轮:0【4,34】,1【】,2【251】,3【】,4原创 2013-10-17 12:44:45 · 434 阅读 · 0 评论 -
归并排序
时间复杂度:O(n*logn) 以2为底的对数空间复杂度:O(n)稳定性:稳定举例:【2,3,1,5,6,4】分割【2,3,1】 【5,6,4】分割【2,3】 【1】分割【2】 【3】合并 【2,3】合并【1,2,3】分割【5,6】 【4】。。。 /// /// 归并排序 ///原创 2013-10-17 12:12:21 · 351 阅读 · 0 评论 -
堆排序
时间复杂度:O(n*logn) 以2为底的对数空间复杂度:O(1)稳定性:不稳定 /// /// 堆排序 /// /// 待排数据 public void Sort(int[] nums) { //基本思路:第1轮 将全部元素调整为大根堆,将根节点和最原创 2013-10-17 11:09:41 · 319 阅读 · 0 评论