#!/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,'***',
分享到:
相关推荐
本文将深入探讨四种常见的排序算法:快速排序、归并排序、冒泡排序和选择排序。这些算法不仅在理论上有其重要性,而且在实际编程项目中也经常被用到。 ### 快速排序 快速排序是由英国计算机科学家C.A.R. Hoare提出...
JAVA排序大全 冒泡 快速 选择 归并排序
这里我们将深入探讨几种经典的排序算法:选择排序、归并排序、冒泡排序、堆排序和快速排序,并通过C++语言来实现它们,同时分析各自的效率。 **1. 选择排序(Selection Sort)** 选择排序是一种简单直观的排序算法...
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
本资源包含了几种常见的排序算法,包括堆排序、选择排序、冒泡排序、归并排序和插入排序。这些排序算法各有特点,适用于不同的场景,并且在理解它们的工作原理后,能够帮助初学者更好地掌握编程基础。 1. **堆排序*...
例如,归并排序可能需要额外的存储空间,而快速排序的性能受基准元素选择的影响。此外,C++标准库提供了`<algorithm>`头文件,其中包含了如`std::sort`等高效排序函数,它们通常比手动实现的排序算法更快更稳定。 ...
本资源提供了五种常见的排序算法的C++实现,包括插入排序、选择排序、归并排序、冒泡排序和堆排序。这些算法都是基于《算法导论》一书中的伪代码编写的。下面将详细解释这五种排序算法及其C++实现的关键点。 1. ...
选择排序、插入排序、冒泡排序以及快速排序和归并排序的C语言实现,绝对可用
冒泡排序、选择排序、快速排序、堆排序、插入排序、希尔排序、归并排序 冒泡排序、选择排序、快速排序、堆排序、插入排序、希尔排序、归并排序 冒泡排序、选择排序、快速排序、堆排序、插入排序、希尔排序、归并排序...
本文将详细探讨五种常见的排序算法——归并排序、插入排序、冒泡排序和选择排序,以及它们在C语言环境下的时间性能比较。 1. **归并排序**: 归并排序是一种基于分治策略的排序算法,它将大问题分解为小问题,再将...
这里我们关注的是三种经典的排序算法:冒泡排序、归并排序和快速排序。这些排序算法各有特点,适应不同的场景需求。 **冒泡排序(Bubble Sort)** 冒泡排序是一种简单的排序算法,它通过重复遍历待排序的列表,比较...
JAVA实现选择,冒泡,归并,插入,快速排序。并随机生成不同规模的随机数来测试各种排序方法耗费的时间。
直接插入排序、冒泡排序、快速排序、直接选择排序、堆排序和二路归并排序是计算机科学中经典的排序算法,它们在数据处理和算法学习中占有重要地位。这些排序算法各有特点,适用场景不同,下面将逐一详细介绍,并结合...
在计算机科学中,排序是...对于需要高效排序的场景,尤其是数据量较大时,归并排序通常是更好的选择。通过实际的Java程序实现和运行测试,我们可以直观地看到这种性能差异,进一步理解这两种排序算法的特点和适用场景。
以下是关于"冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序"这七种常见排序算法的源码实现及相关知识点的详细解释: 1. **冒泡排序**:冒泡排序是一种简单的排序算法,它重复地遍历待排序的...
常用的五种排序方法,包括 冒泡法排序,选择排序,插入排序,归并排序,快速排序
以下是关于"插入排序、选择排序、希尔排序、堆排序、冒泡、双向冒泡、快速排序、归并排序、递归的归并排序、基数排序"这十大经典排序算法的详细解释: 1. 插入排序:插入排序是一种简单的排序算法,它通过构建有序...
根据给定的信息,本文将对九种不同的排序算法进行详细解析:选择排序、插入排序、冒泡排序、希尔排序、快速排序、箱子排序(计数排序)、基数排序、归并排序以及堆排序。 ### 一、选择排序 选择排序的基本思想是...
以上六种排序算法各有优缺点,如选择排序和冒泡排序时间复杂度较高,但实现简单;插入排序在部分有序的情况下效率较高;基数排序适用于处理大量整数排序;快速排序平均性能优秀,但最坏情况下时间复杂度较高;归并...