Python排序(一)

为了学习Python编程,通过Python编写了一些算法小程序,作为自己的学习笔记,同时分享给大家共同学习交流!

现在计算机的广泛使用使得数据无处不在, 而整理数据的第一步通常就是进行排序。所以首先从Python排序算法开始学习。

初级排序算法

我们为了更好的研究排序算法,写了一个排序算法类模版。下面的Sort_class类 展示了一些具体的约定。

我们将排序算法的主要代码放在sort_a()方法中,写具体算法的时候,重构该方法;

less()方法和exchange()方法作为辅组方法也写的该类里,less()方法是用来比较两个元素,exchange()方法是用来交换元素的位置;

show()方法和is_sorted()方法是测试用的,show()方法用来打印排序后序列的内容,is_sorted()方法用来验证序列是否有序

为了区别不同的算法我们将相应的类取不同的名字,如:选择排序Selection.sort_a()、插入排序Insert.sort_a()等。

原代码如下:

classSort_class(object):

def __init__(self,a):

self.a=a

defshow(self):

#在单行中打印序列

print(self.a)

defis_sorted(self):

#测试数组是否有序

foriinrange(1,len(self.a)):

ifExample.less(self.a[i],self.a[i-1]):

return False

return True

defless(self,other):

ifself

return True

else:

return False

defexchange(self,i,j):

temp=self[i]

self[i]=self[j]

self[j]=temp

returnself

defsort_a(self):

#将a按照升序排列

pass

returnself.a

排序效果如下:

下一期我们将具体详解选择排序

本文来自企鹅号 - 杜里尼大街24号媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏desperate633

LintCode 搜索插入位置题目分析代码

给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。 你可以假设在数组中无重复元素。

702
来自专栏Python小屋

使用Python列表实现向量运算

在Python中,列表支持与整数的乘法运算,但表示的是列表元素的重复,并生成新列表,如: >>> [1,2,3]*3 [1, 2, 3, 1, 2, 3, 1...

3586
来自专栏CVer

刷题笔记 | 剑指Offer 03 二维数组中的查找

本文主要讲解《剑指Offer》中第03题"二维数组中的查找",介绍题目、解决思路、解题步骤,并分别以C++和Python编程语言解答此题。

1193
来自专栏猿人谷

memmove函数

写一个函数,完成内存之间的拷贝 void* mymemcpy( void *dest, const void *src, size_t count )   { ...

19010
来自专栏xingoo, 一个梦想做发明家的程序员

最长公共子序列

最长公共子序列问题:给定两个序列X={x1,x2,....xm},    Y={y1,y2,yn},找出XY的最长公共子序列 1 最长公共子序列结构   1 x...

18010
来自专栏C语言及其他语言

【每日一题】问题 1472: 矩阵乘法

关注我们 题目描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 ...

30310
来自专栏数据结构与算法

21:角谷猜想

21:角谷猜想 总时间限制: 1000ms 内存限制: 65536kB描述 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2...

3777
来自专栏数据结构与算法

1116 四色问题

1116 四色问题  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解 题目描述 Description 给定N(小于...

2775
来自专栏算法修养

LeetCode 126 Word Ladder II

具体的思路是,分别从起始和结束字符串出发两遍BFS, 得到每个点到起始字符串的最短距离和终点字符串的最短距离。 然后再从起始字符串出发,DFS 寻找路径。由于...

752
来自专栏机器之心

入门 | 数据科学初学者必知的NumPy基础知识

选自TowardsDataScience 作者:Ehi Aigiomawu 机器之心编译 参与:李诗萌、路 本文介绍了一些 NumPy 基础知识,适合数据科学初...

2713

扫码关注云+社区