python递归实现快速对一个给定字符串排序输出
来源:互联网 发布:机器码破解软件下载 编辑:程序博客网 时间:2024/05/22 17:42
忙里偷闲,来回顾几个经典的算法,慢慢的把之前丢掉的东西捡回来,在理解中学习,在学习中实践,在实践中掌握。
今天写的是对一个简单的字符串排序,排序的 依据就是每个英文字母在字母表中的ASCII码大小排序的,算法可以对大小写字母同等处理,比如A和a的ascii值相差是32,那么在排序后的结果中A一定是出现在了a前面的,好了,原理很简单就不多解释了,直接看程序:
#!usr/bin/env python#encoding:utf-8'''__Author__:沂水寒城功能:对字符串进行快速排序输出'''def get_string_quick_sorted(one_str_list, left, right): ''' 输入:待排序的字符串列表,起始位置下标 输出:标志位下标位置,作为递归的划分界限 ''' start=left end=right tmp=one_str_list[start] while start<end: while one_str_list[end]>tmp and start<end: end-=1 if start<end: one_str_list[start]=one_str_list[end] start+=1 while one_str_list[start]<tmp and start<end: start+=1 if start<end: one_str_list[end]=one_str_list[start] end-=1 one_str_list[start]=tmp return startdef test(one_str_list, left, right): ''' 递归排序的测试函数 ''' if left<right: p=get_string_quick_sorted(one_str_list, left, right) test(one_str_list, left, p-1) test(one_str_list, p+1, right)if __name__ == '__main__': i=0 str_list=['bdsAFha','abcdf','mkjGSAid','hglopdm','mnsdgvjbn'] for one_str in str_list: one_str_list=list(one_str) test(one_str_list, 0, len(one_str_list)-1) print i print 'original_string is:', one_str print 'sorted_string is:', ''.join(one_str_list) i+=1
结果如下:
0original_string is: bdsAFhasorted_string is: AFabdhs1original_string is: abcdfsorted_string is: abcdf2original_string is: mkjGSAidsorted_string is: AGSdijkm3original_string is: hglopdmsorted_string is: dghlmop4original_string is: mnsdgvjbnsorted_string is: bdgjmnnsv[Finished in 0.5s]
可以看到:结果均正确输出了,如果感兴趣的话可以拿去试验一下,只需要运行即可,结果都是一样的
阅读全文
0 0
- python递归实现快速对一个给定字符串排序输出
- Python递归实现快速排序
- Python递归实现快速排序
- 递归问题之一:给定一字符串,输出字符串中所有字符子串的各种组合形式,长度为一个字符到字符串的长度,忽略排序
- 递归实现快速排序
- 快速排序+递归实现
- 递归实现快速排序
- 快速排序--递归实现
- 递归实现快速排序
- 利用递归实现对输入字符串的倒序输出
- 给定一个字符串实现对字符串左移或右移指定长度
- 逆序输出字符串(递归实现)
- 递归实现反向输出字符串
- 递归实现逆序输出字符串
- 快速排序的递归实现
- 快速排序的递归实现
- 快速排序非递归实现
- 快速排序非递归实现
- 生成html模板
- 《将博客搬至CSDN》
- div自动换行及截断文本
- 兼容IE
- vuex笔记
- python递归实现快速对一个给定字符串排序输出
- sass简记
- 关于设计模式,简记
- npm run webpack 和直接webpack
- Android 比较完美 图片压缩方法
- vue中使用sass
- 简单的水平滚动面板
- hibernate教程____hibernate入门小demo
- 3.3Struct2(下午)