好久没写算法什么的,竟然生疏了,多多练习下。
#!/usr/bin/env python
# coding:utf8
class InsertSort(object):
data = [21, 32, 12, 54, 6, 9, 22, 11, 42, 31]
def sort(self):
for i in range(1, len(self.data)):
for j in range(i, 0, -1):
if self.data[j] >= self.data[j - 1]:
break
else:
tmp = self.data[j]
self.data[j] = self.data[j - 1]
self.data[j - 1] = tmp
@staticmethod
def main():
insertSort = InsertSort()
print 'before sorting...'
print insertSort.data
insertSort.sort()
print
print 'after sorting...'
print insertSort.data
if __name__ == '__main__':
InsertSort.main()
ARM 代码就是这次作业了,
area text, code, readonly
num equ 20 * 4 ; numbers to be sort
entry ; insert sort
start
ldr r0, =src ; data to be sort
mov r2, #num
sort
mov r3, #4 ; for i in range(1, len(self.data)):
sort_s
cmp r3, r2
BMI for_one
swi 11
for_one
mov r4, r3 ; for j in range(i, 0, -1):
for_one_s
add r4, r4, r0
ldr r5, [r4]
sub r4, r4, #4
ldr r6, [r4]
cmp r5, r6 ; if self.data[j] >= self.data[j - 1]:
strmi r5, [r4]
strmi r6, [r4, #4]
subs r4, r4, r0
beq return_sort ; break
b for_one_s ; else: continue
return_sort
add r3, r3, #4
b sort_s
area mydata, data, readwrite
src dcd 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4
end
对照着 python 代码写汇编的代码就很简单了。
中间调试的时候由于 subs r4, r4, r0
sub 后面的 s 忘了,运行的时候就不影响 CPSR 导致后面的判断失效。
参考:http://zh.wikipedia.org/zh/插入排序
- 大小: 69.1 KB
分享到:
相关推荐
python插入排序三个类似思路,初学者,数据结构学习者
快速排序.py python代码实现快速排序.py python代码实现快速排序.py python代码实现快速排序.py python代码实现快速排序.py python代码实现快速排序.py python代码实现快速排序.py python代码实现快速排序.py python...
它的基本思想是通过构建一个有序序列,每次从未排序的数据中取出一个元素,在已排序序列中从后向前扫描,找到适当位置并插入。这种排序方式与人们日常生活中对扑克牌进行排序的过程类似,因此易于理解和实现。 ####...
Python实现时,通常使用一个嵌套循环,外层遍历未排序部分,内层找到插入位置并将元素插入。 4. **希尔排序(Shell Sort)**:希尔排序是一种改进的插入排序,通过将待排序序列分为多个子序列来减少元素的移动次数...
冒泡排序代码,使用 Python 进行插入排序、选择排序、冒泡排序、合并排序、快速排序、堆排序的代码。 插入排序是一种简单的排序算法,通过构建有序序列,将未排序的元素逐一插入到已排序的部分。该算法适用于小规模...
此压缩包文件“Python实现插入排序.rar”包含一个名为“Python实现插入排序.py”的源代码文件,很显然,该文件是为了演示如何用Python编写插入排序的算法。 插入排序的基本思想是,将未排序的元素逐个插入到已排序...
桶排序.py 使用python代码实现桶排序.py 使用python代码实现桶排序.py 使用python代码实现桶排序.py 使用python代码实现桶排序.py 使用python代码实现桶排序.py 使用python代码实现桶排序.py 使用python代码实现桶...
归并排序.py 使用python代码实现归并排序.py 使用python代码实现归并排序.py 使用python代码实现归并排序.py 使用python代码实现归并排序.py 使用python代码实现归并排序.py 使用python代码实现归并排序.py 使用...
选择排序,冒泡排序,插入排序,归并排序Python代码
选择排序.py 使用python实现的代码选择排序.py 使用python实现的代码选择排序.py 使用python实现的代码选择排序.py 使用python实现的代码选择排序.py 使用python实现的代码选择排序.py 使用python实现的代码选择排序...
希尔排序.py 使用python实现的代码希尔排序.py 使用python实现的代码希尔排序.py 使用python实现的代码希尔排序.py 使用python实现的代码希尔排序.py 使用python实现的代码希尔排序.py 使用python实现的代码希尔排序...
本文实例讲述了Python实现的插入排序,冒泡排序,快速排序,选择排序算法。分享给大家供大家参考,具体如下: #!/usr/bin/python # coding:utf-8 #直接插入排序 def insert_sort(list): for i in range(len(list))...
其工作原理类似于人们日常生活中整理牌时所采用的方法:每次从未排序的部分取出一个元素,然后将该元素插入到已排序部分的适当位置,使已排序部分始终保持有序状态。 #### 二、算法步骤 1. **初始化**:假设数组的...
Python 3.11.2 arm64版本是指针对基于ARM架构64位处理器系统的Python编程语言发行版; 版本号:3.11.2 表示这是Python 3系列中的第3.11大版本的第二个维护更新,通常包含了自3.11.0发布以来发现的安全修复、错误修正...
选择排序22.py python对选择排序的代码实现选择排序22.py python对选择排序的代码实现选择排序22.py python对选择排序的代码实现选择排序22.py python对选择排序的代码实现选择排序22.py python对选择排序的代码实现...
# sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() #计数排序 # sort.quickSort() #快速排序 该排序算法把每次的排序结果都列出来,可供初学...
在这个代码中,我们首先定义了作者`author`和一个待排序的列表`L`。这个列表包含七个无序的整数。 ```python def direct_insert_sort(numbers): for i in range(1, len(numbers)): #temp变量指向尚未排好序元素...
python python_十大排序算法之插入排序
"python3.7-arm64安装包.deb" 是一个专门为这种架构编译的Python 3.7版本的安装包,以DEB格式提供,这是Debian和Ubuntu等基于Debian的Linux发行版使用的软件包管理系统。 DEB包是一种包含软件及其依赖关系的文件,...
在Python中实现直接插入排序,我们可以使用一个for循环遍历待排序的列表,然后用一个while循环来找到每个元素的正确位置,并将之前的所有元素向右移动。以下是一个简单的Python代码实现: ```python def insertion_...