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

相关文章

来自专栏章鱼的慢慢技术路

求 pi 的近似值题型汇总

2397
来自专栏C/C++基础

C++11新特性——range for

很多编程语言都有range for语法功能,自C++11起,终于将这个重要功能加入C++标准中。range for语句,可以方便的遍历给定序列中的每个元素并对其...

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

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

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

32310
来自专栏Leetcode名企之路

【Leetcode】81. 搜索旋转排序数组 II

( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。

2052
来自专栏猿人谷

memmove函数

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

22210
来自专栏Python小屋

详解Python列表推导式

列表推导式,也叫列表解析式,英文名称为list comprehension,可以使用非常简洁的方式来快速生成满足特定需求的列表,代码具有非常强的可读性。另外,P...

3424
来自专栏尾尾部落

[剑指offer] 调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相...

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

21:角谷猜想

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

3967
来自专栏机器之心

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

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

2813
来自专栏WD学习记录

数据结构与算法2016-05-31

数据元素是数据的基本单位,在计算机程序中通常被作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成。数据项是不可分割的、含有独立意义的最小数据单位,数据...

1122

扫码关注云+社区

领取腾讯云代金券