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

相关文章

来自专栏CDA数据分析师

用SPSS做数据分析?先弄懂SPSS的基础知识吧

1、SPSS数据分析的流程 ? 2、SPSS特性: ? 3、数据的编辑: 1 常量 数值型常量:除了普通写法外还可以用科学计数法,如:1.3E18; 字符型常量...

19010
来自专栏决胜机器学习

有趣的算法(二)——跳跃表的分析

有趣的算法(二)——跳跃表的分析 (原创内容,转载请注明来源,谢谢) 一、概述 最近在学习redis,其中说到当使用redis的sorted set类型时,如...

36210
来自专栏灯塔大数据

每周学点大数据 | No.9递归——以阶乘为例

No.9期 递归——以阶乘为例 Mr. 王:我们介绍一个在计算机算法设计和程序设计中都非常常见的概念——递归。 小可:什么是递归呢? Mr. 王:从程序设计的...

3264
来自专栏深度学习自然语言处理

【笔记】高效率但却没用过的一些numpy函数

最近在看源码的时候,碰到了一些大佬们常用,但自己暂时还没用过的numpy函数,特意来总结下。

442
来自专栏机器学习之旅

tf.nn.embedding_lookup记录

我觉得这张图就够了,实际上tf.nn.embedding_lookup的作用就是找到要寻找的embedding data中的对应的行下的vector。

592
来自专栏开发与安全

从零开始学C++之STL(四):算法简介、7种算法分类

一、算法 算法是以函数模板的形式实现的。常用的算法涉及到比较、交换、查找、搜索、复制、修改、移除、反转、排序、合并等等。 算法并非容器类型的成员函数,而是一...

1670
来自专栏木东居士的专栏

Bloom Filter 的基本原理和实现

1464
来自专栏cmazxiaoma的架构师之路

Java数据结构与算法(4) -冒泡排序

1435
来自专栏Java架构沉思录

从节省Redis内存空间说开去

上周部门会议上讨论的一个议题是如何节省Redis内存空间,其中有个小伙伴提到可以从压缩字符串入手,我觉得这是一个可以尝试的思路。因为有时候我们存在Redis中的...

962
来自专栏云端架构

【云端架构】教你口算MD5算法

对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成...

46214

扫码关注云+社区