基礎排序算法:冒泡排序、選擇排序、插入排序,複雜度O(n^2)算法
冒泡排序思想:一個數組的元素每次通過一趟值比較直接篩選出最值元素到目標位置,而後在待篩選的元素中繼續篩選,這樣形成的結果就是最值元素上浮,稱爲向上冒泡 核心代碼:數組
for(int i=0;i<array.length;i++){ //相鄰元素比較篩選最值元素,放置在整個數組的結尾 for(int j=0;j<array.length-1-i;j++){ if(array[j]>array[j+1]){ int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } }
選擇排序思想:每一趟從帶選擇元素中選出最終元素,並將元素取出放到已排序的元素集合code
for(int i=0; i<array.length;i++){ int index = i; //從待篩選的元素集合選出最小的元素放置在index = i位置 for(int j=i+1;j<array.length;j++){ if(array[j]<array[index]){ index = j; } } int temp = array[i]; array[i] = array[index]; array[index] = temp; }
直接插入排序思想:每一趟排序將待篩選的元素和已造成的有序元素集合比較,直接插入到對應的位置,有序元素集合中大於指定元素向後移動一位,爲指定元素插入目標位置騰出空間排序
for(int i=1;i<array.length;i++){ int temp = array[i]; int j=0; //將目標元素和有序元素集合比較,並進行對應的移位操做 for(j= i-1;j>=0;j--){ if(array[j]>temp){ array[j+1] = array[j]; }else{ break; } } array[j+1] = temp; }