数据结构之排序
目录
- 冒泡排序
- 选择排序
- 插入排序
1. 冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法。它就像水里的气泡往上冒泡一样,越轻(小)越往上浮。我们可以这样,把要进行排序的数组从上往下排放,开始进行第一次遍历,从最底层开始,最底层的元素与它的上一个元素进行比较,如果底下的元素小,那么两个元素进行交换位置,接着与紧接的上一个元素进行比较,如此类推,这样最小的元素就浮到上层了。接着进行第二次遍历找出第二小的元素,同样也是从底层开始,如此类推,得到的数列就是从小到大排序的了
python程序如下:
def BubbleSort(list):
print("数组初始排列:%s",list)
#获得数列的长度
le = len(list)
#定义一个缓存变量
temp = 0
#开始遍历
for i in range(0,le-1):
#从底层开始
for j in range(le-1,0,-1):
#比较底层元素与上一个元素进行比较
if list[j] < list[j-1]:
两个元素位置进行交换
temp = list[j]
list[j] = list[j-1]
list[j-1] = temp
print("冒泡排列后:%s",list)
if __name__ == "__main__":
list=[64,58,42,26,15,74,22,1]
BubbleSort(list)
2. 直接选择排序
选择排序(Selection sort)是一种简单直接的排序算法。它的工作原理如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。
python代码如下:
def SelectionSort(list):
print("排序前的序列:%s" %list)
#获得list 的长度
le = len(list)
#定义交换数据的缓存变量
temp = 0
for i in range(0,le):
#k是一个flag ,指向遍历找出的最小元素
k=i
for j in range(i,le):
if list[j] < list[k]:
k = j
#进行交换数据
temp = list[k]
list[k] = list[i]
list[i] = temp
print("排序后的新序列:%s" %list)
if __name__ == "__main__":
list = [24,18,54,34,72,8,2]
SelectionSort(list)
3. 直接插入排序
posted on 2019-01-24 02:02 人与人之间的交流技巧——心 阅读(59) 评论(0) 收藏 举报
浙公网安备 33010602011771号