作家
登录

常用排序算法比较与分析

作者: 来源: 2017-04-27 15:03:33 阅读 我要评论

归并过程中可以确保两个相等的当前元素中,把处在前面的元素保存在结不雅序列的前面,是以归并排序是稳定的,当时光复杂度为O(nlog2n),空间复杂度为O(n)。

Python源代码:

  1. #-------------------------归并排序-------------------------------- 
  2. #这是归并的函数 
  3. # 将序列data_list[first...mid]与序列data_list[mid+1...last]进行归并 
  4. def mergearray(data_list,first,mid,last,temp): 
  5. #对i,j,k分别进行赋值 
  6.  i,j,k = first,mid+1,0 
  7. #当阁下两边都稀有时进行比较,取较小的数 
  8.  while (i <= mid) and (j <= last): 
  9.  if data_list[i] <= data_list[j]: 
  10.  temp[k] = data_list[i] 
  11.  i = i+1 
  12.  k = k+1 
  13.  else
  14.  temp[k] = data_list[j] 
  15.  j = j+1 
  16.  k = k+1 
  17. #如不雅左边序列还稀有 
  18.  while (i <= mid): 
  19.  temp[k] = data_list[i] 
  20.  i = i+1 
  21.  k = k+1 
  22. #如不雅右边序列还稀有 
  23.  while (j <= last): 
  24.  temp[k] = data_list[j] 
  25.  j = j+1 
  26.  k = k+1 
  27. #将temp傍边该段有序元素赋值给data_list待排序列使之部分有序 
  28.  for x in range(0,k): 
  29.  data_list[first+x] = temp[x] 
  30. # 这是分组的函数 
  31. def merge_sort(data_list,first,last,temp): 
  32.  if first < last
  33.  mid = (int)((first + last) / 2) 
  34. #使左边序列有序 
  35.  merge_sort(data_list,first,mid,temp
  36. #使右边序列有序 
  37.  merge_sort(data_list,mid+1,last,temp
  38. #将两个有序序列归并 
  39.  mergearray(data_list,first,mid,last,temp
  40. # 归并排序的函数 
  41. def merge_sort_array(data_list): 
  42. #声明一个长度为len(data_list)的空列表 
  43.  temp = len(data_list)*[None] 
  44. #调用归并排序 
  45.  merge_sort(data_list,0,len(data_list)-1,temp

      推荐阅读

      Android中内存优化的那些事 - 一个有关图片的优化记录

    客服群里叫唤着:这个用户图片不显示了,那个用户图片也不显示了。我拿着手上一切正常的测试机,what the hell&hellip;&hellip;默默地打开bugly。 满园春色关不住,遍地内存溢出来!是的,>>>详细阅读


    本文标题:常用排序算法比较与分析

    地址:http://www.17bianji.com/lsqh/35003.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)