当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

归并,选择,冒泡

发表于: 2012-11-21   作者:aircoder   来源:转载   浏览次数:
摘要: #!/usr/bin/python #coding=utf-8 ''' 冒泡排序算法 ''' def sort(array):    i = 0    len_array = len(array)    while i < len_array:       j=

#!/usr/bin/python
#coding=utf-8
'''
冒泡排序算法
'''

def sort(array):
   i = 0
   len_array = len(array)
   while i < len_array:
      j=i+1
      while j < len_array:
         if array[j] > array[i]:
tmp = array[j]
array[j] = array[i]
array[i] = tmp
         j = j+1
      i = i+1

if __name__ == '__main__':

   array = [2,3,2,45,56,234,132,13,54,0,-1,3]
   sort(array)
   for ii in array:
       print ii,"---",



#!/usr/bin/python
#coding=utf-8

'''

选择排序

'''
def select_sort(array):
   
    length = len(array)
    i = 0
    while i < length:
        tmp = i
        j = i+1

        while j < length:
            if array[j] > array[tmp]:
                tmp = j
            j = j+1

        if  tmp != i :
            tmp_value = array[i]
            array[i] = array[tmp]
            array[tmp] = tmp_value

        i = i+1



if __name__ == '__main__':

    array = [1,23,34,456,3,50,67,-2,4,-67,-575,57570,45,12,2,1,23]
    select_sort(array)

    for i in array:

        print i,'----',
----------------------------------------------------------------------------------
//归并排序:
#!/usr/bin/python
#coding=utf-8


def merger(a,left,right):

    if left == right:

        return
   
    else:

        center = (left+right)/2

        merger(a,left,center)
        merger(a,center+1,right)
        sort(a,left,center,right)


def sort(a,left,center,right):

    tmp_array = []
    tmp_check = 0
    r = right
    l = left
    right_tmp =  center+1
    while left <= center and right_tmp <= right:

        if a[left] >= a[right_tmp]:

            tmp_array.append(a[left])
            left+=1
        else:
            tmp_array.append(a[right_tmp])
            right_tmp+=1
        tmp_check+=1

    while left <= center:

        tmp_array.append(a[left])
        left+=1
        tmp_check+=1
    while right_tmp <= right:

        tmp_array.append(a[right_tmp])
        right_tmp+=1
        tmp_check+=1

    i=0
    while l <= r:
        kk = tmp_array[i]
        a[l]=tmp_array[i]
        i+=1
        l+=1
       
if __name__ == '__main__':

    a=[1,2,4,6,28,40,79,28,1,2,91,92,93,34,52,12]
    merger(a,0,len(a)-1)
    for i in a:
        print i,'***',

归并,选择,冒泡

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
首先声明一下,本文只对七种排序算法做简单总结,并参照一些资料给出自己的代码实现,并没有对某种
日常开发过程中,我们最常使用到的算法就是排序算法,最常用的排序算法例如选择排序,冒泡排序,归并排
排序 排序是使数据有序化的操作。这里的数据包括关键字和其它信息项,关键字用来控制排序。排序使得
近最研究元素排序,稍微总结一下,以后继承补充: 近最决议天每学点数据结构与算法,写客博来促督自
程序源码: #include<iostream> using namespace std; void swap(int a[],int i,int j){ int
1、冒泡排序 Bubble Sort 最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素
1、冒泡排序 Bubble Sort 最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素
1、冒泡排序 Bubble Sort 最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素
#include <stdio.h> #include <time.h> #include <windows.h> //快速排序,参数
冒泡排序 冒泡排序比较好理解,但是效率比较低, 冒泡排序的基本思想是:每一次将最具有特征的一个数
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号