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 条评论
登录 后参与评论

相关文章

来自专栏kalifaの日々

POJ2431-最优队列(最小堆)解法

这道题有一个坑,就是给出的加油站到终点的距离不一定是降序排列好了的。 所以得到input之后要先对数据进行排序。我直接用了#include<algorithm>...

3327
来自专栏决胜机器学习

PHP数据结构(十) ——有向无环图与拓扑算法

PHP数据结构(十)——有向无环图与拓扑算法 (原创内容,转载请注明来源,谢谢) 一、有向无环图概念 有向无环图又称为DAG图。与其对应的还有有向树、有环图。...

44311
来自专栏云霄雨霁

加权无向图----Kruskal算法实现最小生成树

970
来自专栏Petrichor的专栏

tensorflow编程: Variables

tf.moving_average_variables tf.global_variables_initializer tf.local_variabl...

1111
来自专栏数据分析

char varchar nchar nvarcharar到底有多大区别

首先说明下,ASP.NET MVC系列还在龟速翻译中。 工作好多年,基础知识甚是薄弱,决定以后在coding(cv操作)的时候尽量多google下,然后总结下来...

2706
来自专栏苦逼的码农

递归与动态规划----基础篇2

ps:最近几天正在刷一些有关动态规划的题,我会把自己学习时的想法以及做题的想法记录下来。如果你觉得对你有帮助,欢迎关注,谢谢。

532
来自专栏小红豆的数据分析

小蛇学python(18)pandas的数据聚合与分组计算

对数据集进行分组并对各组应用一个函数,这是数据分析工作的重要环节。在将数据集准备好之后,通常的任务就是计算分组统计或生成透视表。pandas提供了一个高效的gr...

1062
来自专栏行者常至

golang string、int、int64 float 互相转换

963
来自专栏深度学习之tensorflow实战篇

tensorflow载入数据的三种方式 之 TF生成数据的方法

Tensorflow数据读取有三种方式: Preloaded data: 预加载数据 Feeding: Python产生数据,再把数据喂给后端。 Reading...

3514
来自专栏算法channel

这5道算法题 都可以套用这个模板

首先我们拿出元素1,然后在1,2,3 这个深度方向寻找,找到满足题意的解有两个,1,2,3 和 1,3,2;

940

扫码关注云+社区