穩定:如果a原本在b前面,而a=b,排序之後a仍然在b的前面。3.1 冒泡不穩定:如果a原本在b的前面,而a=b,排序之後 a 可能會出現在 b 的後面。
時間複雜度:對排序資料的總的操作次數。反映當n變化時,操作次數呈現什麼規律。
o(n) : for(int i=0;i<10:i++){};
o(n*n) : for(int i=0;i<10:i++)};
o(log2n) : 就是將迴圈次數/2;
o(nlog2n) : 就是迴圈資料的次數1分為2;
空間複雜度:是指演算法在計算機內執行時所需儲存空間的度量,它也是資料規模n的函式。
public
static
void
bubblesort
(int
numbers)
}// system.out.println("------------");
}}
3.2 選擇public
static
void
selectsort
(int
numbers)
}// 將找出最小值與i位置的值互動,把最小值放置在集合最前
temp = numbers[i]
; numbers[i]
= numbers[k]
; numbers[k]
= temp;
// system.out.println(arrays.tostring(array));
}}
3.3 插入private
static
void
insertsort
(int
numbers)
else
} numbers[j +1]
= temp;
system.out.
println
(j+" "
+arrays.
tostring
(numbers));
}}
3.4 快速public
static
void
quicksorthelp
(int
arr)
;quicksort
(arr,
0, arr.length-1)
;}public
static
void
quicksort
(int
arr,
int low,
int high)
}public
static
intpartition
(int
arr,
int low,
int high)
swap
(arr,high,low)
; system.out.
println
("[high:"
+high+
"] "
+arrays.
tostring
(arr));
while
(arr[low]
<=base&&low
swap
(arr,high,low)
; system.out.
println
("[low:"
+low+
"] "
+arrays.
tostring
(arr));
} system.out.
println
(arrays.
tostring
(arr));
system.out.
println
("----------------------------");
return low;
}public
static
void
swap
(int
arr,
int high,
int low)
寫技術文章初心 Java中常用的陣列排序演算法
氣泡排序 雙層迴圈實現。外層迴圈控制排序輪數,內層迴圈對比陣列中每個臨近元素的大小,以確定是否交換位置 程式 從小到大 public class bubblesort bubblesort sorter new bubblesort create a bubble sort class object...
面試中常用的演算法 排序
學習演算法的好處 學習演算法的過程其實是乙個提高思維能力的過程。基本的排序演算法 簡單直接幫助迅速寫出沒有bug的 氣泡排序 bubble sort 插入排序 insertion sort 常考的排序演算法 解決絕大部分設計排序問題的關鍵 歸併排序 merge sort 快速排序 quick sor...
STL中常用的排序演算法
merge 例如 vecinta,vecintb,vecintc是用vector宣告的容器,vecinta已包含1,3,5,7,9元素,vecintb已包含2,4,6,8元素 vecintc.resize 9 擴大容量 merge vecinta.begin vecinta.end vecintb....