麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 可視化選擇排序算法

可視化選擇排序算法

來源:千鋒教育
發布人:syq
時間: 2022-09-22 16:03:00 1663833780

  選擇排序

  讓我們以最簡單的排序算法之一為例:找到數組中最小的元素并將其與第一個位置的元素交換,然后找到下一個最小的元素并將其與第二個位置的元素交換,然后繼續直到數組被排序。此方法稱為選擇排序。在每個外部循環之后繪制將得到以下輸出:

32

  以下是我們可以快速編寫的程序:

33

  該算法編寫起來不太困難,并且此實現的效率為 。在每個外部循環的末尾添加 A 以生成我們的輸出。O(n^2)console.log

  如何為字母添加動畫效果?

  現在讓我們假設我們想要對它進行動畫處理。例如,每次我們交換兩個元素時,我們都可以期望看到兩個元素相互移動并最終在新位置安頓下來的平穩過渡。

34

  讓我們使用 HTML/CSS 來實現這一點。假設我們在數組中有 14 個字母:

35

  要將字母移動到不同的位置,我們可以將其位置設置為 從 到 假設每個字母都占據 。為了使動畫有點流暢,我們可以添加 ,以允許動畫花費1秒,并具有一些輕松的感覺。S absolute 32px 320px 32px transition

  我們制作什么動畫?

  好的,HTML和CSS是確保字母在屏幕上移動的基本要素。但是我們需要一種方法來創建與動畫幀關聯的狀態。然后,我們可以在新位置顯示字母,以防狀態發生變化。

  考慮保存陣列內容:initialArr

36

  我們想問以下問題。如果我們跟蹤第一個字母,它將移動到什么位置?同樣,如果仔細觀察第二封信,它會移動到什么位置?從本質上講,我們希望跟蹤每個字母的位置。聽起來很直觀,當你在研究算法時,這可能是一個非常不同的體驗,你可以跟蹤其他任何東西,大多數時候是派生的屬性。as

  假設我們使用數組來跟蹤每個字母的位置。例如,最初,第一個字母的位置是 ,第二個字母的位置是 。但是經過幾次移動后,第二個字母可以移動到位置 。假設我們知道當前運行的數組,我們可以使用以下 React 代碼顯示每個字母:index 0 1 10 index

37

  我們從14個字母開始,以14個字母結束,因為它們是唯一的對象(盡管它們可以有重復的符號)。因此,我們無意更改對象列表;相反,我們只想計算出它們的當前位置,然后將其乘以32,如 .left: v * 32

  如何生成倉位?

  好的,現在給定一個位置列表,我們可以在屏幕上顯示它們。但是,誰來給我們每幀的所有位置呢?當然,這是我們試圖研究的算法。讓我們在 JavaScript 生成器函數的幫助下創建一個:

38

  我相信你可以從上面的代碼中看到我們的算法。有兩個循環,每個內部循環后都有一個交換。它比算法本身稍微復雜一點,但總的來說,它是一個直接的翻譯。開銷是我們希望跟蹤每個字母在 中的位置,而不是最終排序的數組 。indexarr

  最重要的一行是 ,我們在其中暫停算法并輸出 。這就是我們獲取當前狀態的方式。為了將所有內容放在一起,我們得到了以下組件:yield { index }index App

39

  從本質上講,我們設置了一次性操作,以便在加載后運行動畫循環,然后首先組裝生成器 。之后,對于每一秒,我們調用以獲取下一個位置列表。React 將確保每次更新都會觸發屏幕的渲染,以使所有字母保持最新狀態。useEffectAppg=gen(initialArr)1000msg.next()setIndex(index)

  想要制作更多動畫效果?

  從這一刻起,只需考慮要制作更多元素的動畫即可。例如,在交換之前有一個時刻,我們想首先從變量跟蹤的中識別出我們正在比較的字母。i

  在這種情況下,我們需要修改生成器函數:

40

  我們可以再添加一行輸出,誰說我們只能生成一種類型的項目,誰說我們只能生成相同類型的數據。在這里,我們可以通過以下方式跟蹤字母的位置。我們還將此操作命名為 。所有這些都可以根據您自己的目的進行修改。當我們開始使用這個生成器時,我們可以用新的數據集做更多的事情:ii loop

41

  將創建新的狀態變量來跟蹤位置。如果它與任何字母匹配,它會附加一個CSS類,因此您可以以不同的方式顯示它。outterId ii highlight

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 538免费视频| 一区二区三区国产最好的精华液| 波多野结衣作品在线观看| 野花社区视频在线观看| 午夜三级三级三点在线| 再深一点灬舒服灬太大了| 亚洲免费视频一区二区三区| 亚洲va在线va天堂va手机| 草樱免费视频| 4408私人影院| 波多野结衣波多野结衣| 红颜免费观看动漫完整版| 处破女18分钟完整版| 偷窥自拍10p| 你懂的在线免费观看| 香港一级毛片免费看| 久久我们这里只有精品国产4| 老司机福利在线观看| 波多野吉衣一区二区三区在线观看 | 欧美边吃奶边爱边做视频| 风流艳妇在线观看| 大胸校花被老头粗暴在线观看| 欧美成人精品一区二三区在线观看| 国产香蕉久久| 欧美三级在线免费观看| 四虎精品久久久久影院| 日韩三级网址| 国产特级毛片aaaaaa高清| 日本大片免a费观看在线| 四虎影院一级片| 精品大臿蕉视频在线观看| 久草香蕉在线| 高清一级做a爱免费视| 4444www免费看| 在厨房里挺进美妇雪臀| 国产原创中文字幕| 欧美三级免费| 成a人片亚洲日本久久| 殴美黄色| 日韩午夜r电影在线观看| 里番牝教师~淫辱yy608|