python插入排序(insert sort)

插入排序輸出到console帶顏色字體展示插入時(shí)數(shù)據(jù)交換


圖片


insert_sort.gif

插入排序算法

    def sort_a(arr):
        """插入排序"""
        arr = copy.deepcopy(arr)
        for i, cursor in enumerate(arr):
            pos = i
            while pos > 0 and arr[pos - 1] > cursor:
                arr[pos] = arr[pos - 1]
                pos = pos - 1
            arr[pos] = cursor
        return arr

動(dòng)態(tài)顯示插入動(dòng)作代碼

# coding:utf-8
"""
author: Allen
datetime: 
python version: 3.x
summary: 
install package:
"""
from typing import List
import random
from colorama import Fore
import copy


class GenData(object):
    def __init__(self):
        pass

    @staticmethod
    def random_list(start: int = 0, end: int = 10, step: int = 1):
        """生成隨機(jī)列表"""
        seq = list(range(start, end, step))
        random.shuffle(seq)
        return seq


class ConsolePrint(object):
    @staticmethod
    def annotation_seq(seq: List, index: int):
        """帶顏色打印字體"""
        return ' '.join([Fore.RESET + str(d) if i != index else Fore.RED + str(d) for i, d in enumerate(seq)])

    @staticmethod
    def cover_print(data):
        print("\r\rq79ladc".format(d=str(data).strip()), end='')



class InsertSort(object):
    def __init__(self):
        pass

    @staticmethod
    def sort_a(arr):
        """插入排序"""
        arr = copy.deepcopy(arr)
        for i, cursor in enumerate(arr):
            pos = i
            while pos > 0 and arr[pos - 1] > cursor:
                arr[pos] = arr[pos - 1]
                pos = pos - 1
            arr[pos] = cursor
        return arr

    @staticmethod
    def sort_a_draw(arr, sleep=1):
        """console口打印排序時(shí)候數(shù)據(jù)的移位"""
        arr = copy.deepcopy(arr)
        for i, cursor in enumerate(arr):
            pos = i
            InsertSort._annotation_p(arr, pos=pos, cursor=cursor)
            while pos > 0 and arr[pos - 1] > cursor:
                InsertSort._annotation_p(arr, pos=pos, cursor=cursor)
                arr[pos] = arr[pos - 1]
                InsertSort._annotation_p(arr, pos=pos, cursor=cursor)
                pos = pos - 1
                time.sleep(sleep)
            InsertSort._annotation_p(arr, pos=pos, cursor=cursor)
            arr[pos] = cursor
            InsertSort._annotation_p(arr, pos=pos, cursor=cursor)
            time.sleep(sleep)
        return arr

    @staticmethod
    def _annotation_p(arr, pos, cursor):
        tmp_arr = copy.deepcopy(arr)
        tmp_arr[pos] = cursor
        ConsolePrint.cover_print(ConsolePrint.annotation_seq(tmp_arr, index=pos))


if __name__ == '__main__':
    seq = GenData.random_list()
    res = InsertSort.sort_a_draw(seq)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蔫磨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌圃伶,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窒朋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡侥猩,警方通過(guò)查閱死者的電腦和手機(jī)榔至,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門欺劳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)唧取,“玉大人,你說(shuō)我怎么就攤上這事枫弟⌒舷恚” “怎么了淡诗?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵骇塘,是天一觀的道長(zhǎng)韩容。 經(jīng)常有香客問(wèn)我款违,道長(zhǎng)宙攻,這世上最難降的妖魔是什么奠货? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任座掘,我火速辦了婚禮,結(jié)果婚禮上柔滔,老公的妹妹穿的比我還像新娘。我一直安慰自己睛廊,他們只是感情好形真,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布超全。 她就那樣靜靜地躺著咆霜,像睡著了一般嘶朱。 火紅的嫁衣襯著肌膚如雪蛾坯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天脉课,我揣著相機(jī)與錄音,去河邊找鬼财异。 笑死,一個(gè)胖子當(dāng)著我的面吹牛戳寸,可吹牛的內(nèi)容都是我干的呈驶。 我是一名探鬼主播疫鹊,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼袖瞻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了虏辫?” 一聲冷哼從身側(cè)響起蚌吸,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤砌庄,失蹤者是張志新(化名)和其女友劉穎羹唠,沒想到半個(gè)月后娄昆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體佩微,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡萌焰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年哺眯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扒俯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奶卓。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撼玄,死狀恐怖夺姑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盏浙,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布荔茬,位于F島的核電站,受9級(jí)特大地震影響慕蔚,放射性物質(zhì)發(fā)生泄漏丐黄。R本人自食惡果不足惜坊萝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一孵稽、第九天 我趴在偏房一處隱蔽的房頂上張望十偶。 院中可真熱鬧菩鲜,春花似錦、人聲如沸惦积。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蛛勉。三九已至,卻和暖如春诽凌,著一層夾襖步出監(jiān)牢的瞬間毡熏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凉夯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓财搁,卻偏偏與公主長(zhǎng)得像躬络,于是被迫代替她去往敵國(guó)和親尖奔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 某次二面時(shí)提茁,面試官問(wèn)起Js排序問(wèn)題,吾絞盡腦汁回答了幾種甘凭,深感算法有很大的問(wèn)題稀拐,所以總計(jì)一下火邓! 排序算法說(shuō)明 (1...
    流浪的先知閱讀 1,192評(píng)論 0 4
  • “鄉(xiāng)愁還在德撬,我該走了铲咨,假如我有九條命,寫給未來(lái)的你”世上再無(wú)《鄉(xiāng)愁》余光中去世蜓洪。堂,在等我隆檀,異日我也將隨你而去摇天。萬(wàn)...
    月上飄飄一浦聲岳閱讀 208評(píng)論 0 0
  • Django 中提供了開發(fā)網(wǎng)站經(jīng)常用到的模塊恐仑,常見的代碼都為你寫好了泉坐,通過(guò)減少重復(fù)的代碼裳仆,Django 使你能夠?qū)?..
    木易林1閱讀 570評(píng)論 0 0
  • 午夜的飛行 黑色的風(fēng) 風(fēng)馳電掣中沉淪 默默地乞禱 精準(zhǔn)地操控 一道優(yōu)美的線條 炫目地擦過(guò)車身 哦 見鬼 請(qǐng)上帝寬...
    非瞳傾夢(mèng)閱讀 150評(píng)論 7 1
  • 很早之前就給自己朋友圈的使用約法三章纯丸, 一.不轉(zhuǎn)發(fā)別人的鏈接偏形。 二.不發(fā)負(fù)能量的信息觉鼻。 三.不發(fā)廣告俊扭,不集贊。 四...
    郭來(lái)輝閱讀 534評(píng)論 0 0