python遞迴實現快速對乙個給定字串排序輸出

2021-08-03 11:36:47 字數 968 閱讀 4800

忙裡偷閒,來回顧幾個經典的演算法,慢慢的把之前丟掉的東西撿回來,在理解中學習,在學習中實踐,在實踐中掌握。

今天寫的是對乙個簡單的字串排序,排序的 依據就是每個英文本母在字母表中的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 starttmp and start

0original_string is: bdsafha

sorted_string is: afabdhs

1original_string is: abcdf

sorted_string is: abcdf

2original_string is: mkjgsaid

sorted_string is: agsdijkm

3original_string is: hglopdm

sorted_string is: dghlmop

4original_string is: mnsdgvjbn

sorted_string is: bdgjmnnsv

[finished in 0.5s]

可以看到:結果均正確輸出了,如果感興趣的話可以拿去試驗一下,只需要執行即可,結果都是一樣的

快速排序python遞迴實現

快速排序python def swap list,i,j 位置互換 list i list j list j list i return list def quicksort list,start,end if start end i,j start,end base list i 設定基數 whi...

python實現對乙個完整url進行分割的方法

python對乙個完整的url進行分割,將url分割成單獨的部分,包括協議 網域名稱 埠 路徑 引數等等 import urlparse print urlparse.urlsplit 結果如下 複製 如下 splitresult scheme http netloc wwwwww.cppcns.c...

遞迴和非遞迴快速排序 Python實現

快速排序的原理是基於分治策略,設定乙個基準線 pivot 將資料分為兩部分,不斷分治實現資料的排序 由實現原理容易得到遞迴 如下 def qsort arr ifnot len arr return else 在這裡以第乙個元素為基準線 pivot arr 0 left qsort x for x ...