python實現**
排序演算法:內部排序 + 外部排序
內部排序:插入、選擇、交換、歸併、基數排序
插入排序:直接插入排序+希爾排序
選擇排序:簡單選擇排序+堆排序
交換排序:氣泡排序+快速排序
//定義乙個公用函式
function swap(myarray, p1, p2)
function insertionsort(myarray)
myarray[j+1] = value;
}
return myarray;
}
function shell(myarray)
gap = math.floor(gap / 2);
}}
function selectionsort(myarray)
}// 如果當前位置不是最小值,將其換為最小值
if (i != min)
}return myarray;
}
function bubblesort(myarray)
}} return myarray;
}
var quicksort = function(arr)
var pivotindex = math.floor(arr.length / 2);
var pivot = arr.splice(pivotindex, 1)[0];
var left = ;
var right = ;
for (var i = 0; i < arr.length; i++) else
} return quicksort(left).concat([pivot], quicksort(right));
};
function merge(left, right) else
}return result.concat(left.slice(il)).concat(right.slice(ir));
}function mergesort(myarray)
let middle = math.floor(myarray.length / 2),
left = myarray.slice(0, middle),
right = myarray.slice(middle);
return merge(mergesort(left), mergesort(right));
}
資料結構八大排序演算法
常見的八大排序演算法,他們之間關係如下 直接插入排序 definsert sort l 遍歷陣列中的所有元素,其中0號索引元素預設已排序,因此從1開始 for x in range 1 len l 將該元素與已排序好的前序陣列依次比較,如果該元素小,則交換 range x 1,1,1 從x 1倒序迴...
資料結構八大排序
不穩定排序 一 選擇排序 例如 4 1 8 21 0 i j 0 4 8 21 1 將i的值存放到minindex中 arr j tmp 比較minindex和tmp的值 最後互換 void select sort int arr,int len 三 直接插入排序 穩定的演算法 無序 o n 2 有...
常見八大排序演算法
排序演算法 穩定性平均時間複雜度 最差時間複雜度 空間複雜度 備註堆排序 不穩定o nlogn o nlogn o 1 n大時較好 快速排序 不穩定o nlogn o n 2 o nlogn n較大時好 希爾排序 不穩定o nlogn o n s o 1 s時所選的分組 選擇排序 不穩定o n 2 ...