氣泡排序是基於反复比較相鄰元素對,然後以錯誤順序存在的位置交換的想法。
例子:
參考:hackerearth
插入排序基於以下想法:在每次迭代中消耗輸入元素的一個元素以找到其正確的位置,即其屬於排序的數組中的位置。
它通過在每次迭代中種植排序的陣列來迭代輸入元素。它將當前元素與排序陣列中最大的值進行比較。如果當前元素更大,則將元素留在其位置,然後移動到下一個元素,它在排序的數組中找到正確的位置並將其移至該位置。這是通過將分類數組中的所有元素移動到當前元素大的元素來完成的
例子:
參考:hackerearth
Merge Sort是一種基於將列表分解為幾個子名單的想法,直到每個子列表由一個單個元素組成並以導致分類列表的方式合併這些贊助者為止。
主意:
將未分類的列表分為子列表,每個列表包含元素。拿出兩個單身列表的相鄰對,並將它們合併以形成2個元素的列表。現在將轉換為尺寸2的列表。重複該過程,直到獲得的單個排序列表為止。在比較兩個符合條件合併的同時,考慮了兩個列表的第一個元素。按升序排序時,值較小的元素成為排序列表的新元素。重複此過程,直到兩個較小的讚助者都是空的,而新的組合訂閱者則包括兩個贊助者的所有元素。
例子:
參考:hackerearth,geeksforgeeks
快速排序基於基於選擇一個元素作為樞軸元素的想法並將其劃分圍繞數組的構想的方法基於:樞軸的左側包含所有小於樞軸元素右側的元素,其中包含大於樞軸的所有元素
它降低了空間的複雜性並消除了合併排序使用的輔助陣列的使用。在大多數情況下,在數組中選擇一個隨機樞軸會導致時間複雜性的提高。
例子:
參考:hackerearth,geeksforgeeks
選擇排序算法通過反復從未分類部分找到最小元素(考慮上升順序)並將其放在開始時,將數組分類。該算法在給定數組中維護兩個子陣列。
在選擇排序的每一個迭代中,從未分類子陣列中挑選並移至排序的子陣列中的最小元素(考慮上升順序)。
例子:
堆棧是動態數據結構,在第一個(LIFO)原理中遵循最後一個。最後要插入堆棧的項目是第一個從中刪除的項目。
插入和刪除元素
堆棧對元素的插入和刪除有限制。元素只能從堆棧的一端從頂部插入或刪除。頂部的元素稱為頂部元素。插入和刪除元素的操作分別稱為push()和pop()。
當刪除堆棧的頂部元素時,如果堆棧仍然是非空的,則在上一個頂部元素下方的元素將成為堆棧的新頂部元素。
例如,在托盤的堆疊中,如果將托盤放在頂部而不替換它,則第二個托盤會自動成為該堆棧的頂部元素(托盤)。
顧問和脫口水。入口意味著添加隊列。 Dequeue意味著從隊列中取出。
參考:hackerearth,geeksforgeeks