Android開發日記:好久沒寫的氣泡排序
最近在開發時遇到一個需求,給定一個 ListA 集合,裡面儲存不定長度的 String 字串,透過網路請求獲取另外一串 ListB 資料,讀取 ListB ,將 ListB 中含有 ListA 中字串的資料放到集合前方,將不含有相關資料的放入後方
開發業務久了,第一反應是
1. 先迴圈 ListB 的每個值,將符合 ListA 的資料提取出來,使用一個臨時的 List 進行儲存
2. 這個時候 ListB 中的資料都是不含有 ListA 的,將 ListB 剩下的資料放入臨時 List
3. 將臨時 List 的資料覆蓋到 ListB
程式碼如下:
private fun sortSearch(ListA: MutableList<String>, ListB: MutableList<String>) :MutableList<String>{ val tempList = mutableListOf<String>() ListB.forEach { itB -> ListA.firstOrNull { itB.contains(it) }?.let { tempList.add(itB) } } ListB.removeAll(tempList) tempList.addAll(ListB) return tempList }
但是仔細一想,這不是可以直接用最基礎的氣泡排序嗎
思路如下:
1. 定義兩個臨時變數,一個記錄符合條件的 index 值,另外一個記錄不符合條件的 index 值
2. 迴圈 ListB ,獲取第一個符合條件的 index 和第一個不符合條件的 index 值,將他們賦值給臨時變數
3. 每次對比兩個臨時變數的值,如果符合條件的 index 值大於不符合的則將他們的位置和 index 值進行調換
程式碼如下:
private fun sortOfBubble(listA: List<String>): MutableList<String> { val tempList = listA.toMutableList() var indexOfProduct = -1 var indexOfNot = -1 tempList.forEachIndexed { index, string -> run product@{ listB.forEach { if (string.contains(it)) { indexOfProduct = index return@product } } if (indexOfNot == -1) indexOfNot = index } if (indexOfNot != -1 && indexOfProduct != -1 && indexOfProduct > indexOfNot) { val temp = tempList[indexOfProduct] tempList[indexOfProduct] = tempList[indexOfNot] tempList[indexOfNot] = temp indexOfNot = indexOfProduct } } return tempList }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2937035/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 氣泡排序筆記排序筆記
- 排序——氣泡排序排序
- JS氣泡排序的6種寫法JS排序
- 氣泡排序排序
- 9. 氣泡排序,以及如何優化氣泡排序,氣泡排序屬於插入排序排序優化
- 無聊寫一個氣泡排序排序
- 用Java語言寫氣泡排序Java排序
- 排序:氣泡排序&快速排序排序
- js氣泡排序JS排序
- JavaScript氣泡排序JavaScript排序
- 氣泡排序1排序
- 氣泡排序-fusha排序
- 氣泡排序演示排序
- Shell氣泡排序排序
- d氣泡排序排序
- 容器氣泡排序排序
- 氣泡排序法排序
- 氣泡排序(Java)排序Java
- Python 氣泡排序Python排序
- 淺析氣泡排序排序
- 陣列氣泡排序陣列排序
- Python_氣泡排序Python排序
- 氣泡排序(python版)排序Python
- 19_氣泡排序排序
- 函式氣泡排序函式排序
- 排序演算法--氣泡排序排序演算法
- 排序演算法__氣泡排序排序演算法
- 排序演算法–氣泡排序排序演算法
- 選擇排序和氣泡排序排序
- 氣泡排序與選擇排序排序
- 【排序】氣泡排序(待補充)排序
- 氣泡排序的簡單理解排序
- java程式的氣泡排序操作Java排序
- 從演算法開始 [氣泡排序]演算法排序
- 從演算法開始[氣泡排序]演算法排序
- 氣泡排序 插入排序 快排排序
- Python實現氣泡排序Python排序
- 如何優化氣泡排序?優化排序