資料結構常見的八大排序演算法

2021-08-28 08:53:24 字數 1357 閱讀 1132

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 ...