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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 氣泡排序筆記排序筆記
- 【筆記】氣泡排序筆記排序
- shell指令碼寫氣泡排序指令碼排序
- 排序——氣泡排序排序
- JS氣泡排序的6種寫法JS排序
- 氣泡排序排序
- 9. 氣泡排序,以及如何優化氣泡排序,氣泡排序屬於插入排序排序優化
- 用Java語言寫氣泡排序Java排序
- 無聊寫一個氣泡排序排序
- 排序之氣泡排序排序
- 排序:氣泡排序&快速排序排序
- 一日一碼01——氣泡排序排序
- js氣泡排序JS排序
- 氣泡排序-fusha排序
- 氣泡排序演示排序
- Shell氣泡排序排序
- d氣泡排序排序
- 氣泡排序正解排序
- JavaScript氣泡排序JavaScript排序
- java氣泡排序Java排序
- 氣泡排序 java排序Java
- php氣泡排序PHP排序
- Java 氣泡排序Java排序
- Javascript 氣泡排序JavaScript排序
- 氣泡排序1排序
- 氣泡排序法排序
- 氣泡排序(Java)排序Java
- 容器氣泡排序排序
- 基本排序之氣泡排序排序
- 排序:交換排序——氣泡排序法排序
- 氣泡排序的推導排序
- js氣泡排序動畫JS排序動畫
- 陣列氣泡排序陣列排序
- 淺析氣泡排序排序
- python氣泡排序Python排序
- 氣泡排序 bubble sort排序
- 淺談氣泡排序排序
- 氣泡排序文法排序