題目:給一組整數,按照公升序排序,使用選擇排序,氣泡排序,插入排序或者任何 o(n2) 的排序演算法
1、氣泡排序
原理:從第乙個整數開始第一趟,比較相鄰的兩個元素,大的放在後面;一輪結束後,最大的數沉底;重複這一過程,完整n-1趟。
所以有兩個迴圈,外迴圈決定第幾趟、從第幾個元素開始比較;內迴圈是比較相鄰兩個元素大小,決定要不要交換。
class solution}}
}};
2、插入排序
原理:第一趟把第乙個元素當做有序序列,用第二個和第乙個比,將大的放在後面;第二趟把前兩個元素當做有序序列,用第三個元素跟第二個比,大的放後面,再用第二個跟第乙個比,大的放後面;第三趟把前三個當做有序序列,用第四個元素跟第三個比,再用第三個跟第二個比,第二個跟第乙個比;......以此類推。兩個迴圈,外迴圈決定從無序序列開始,內迴圈進行從後往前的兩兩比較和交換。
class solution }}
};
3、選擇排序
原理:遍歷整個陣列,對於當前位置i,定義乙個變數min_idx,用來記錄當前位置往後的最小的座標,並通過遍歷以後所有的數字來找這個最小的座標;然後交換a[i]和a[min_idx]。
外迴圈定義當前位置,內迴圈找到當前往後最小的元素座標。從第乙個元素開始,選擇後面元素裡面最小的乙個和第乙個元素交換,直到最後乙個元素。
class solution
}swap(a[i], a[min_idx]);}}
};
參考:
lintcode整數排序
lintcode反轉整數
反轉整數 將乙個整數中的數字進行顛倒,當顛倒後的整數溢位時,返回 0 標記為 32 位整數 您在真實的面試中是否遇到過這個題?yes 樣例給定x 123,返回321 給定x 123,返回 321 標籤 相關題目 本題採用數學計算法而不是文字翻轉,所以末尾為0的翻轉不用考慮。坑就是要考慮溢位啊!一開始...
LintCode 整數排序 II
題目描述 給一組整數,按照公升序排序。使用歸併排序,快速排序,堆排序或者任何其他 的排序演算法。樣例 給出 3,2,1,4,5 排序後的結果為 1,2,3,4,5 做題思路 這一題同前面一題一樣,也是為整數進行公升序排序,但不同的是時間複雜度變了,而sort函式不僅符合上一題的要求,更符合這一題的要...
Lintcode 整數排序 II
1.題目 給一組整數,按照公升序排序。使用歸併排序,快速排序,堆排序或者任何其他 o n log n 的排序演算法。樣例給出 3,2,1,4,5 排序後的結果為 1,2,3,4,5 2.思路 sort 函式是nlogn的演算法,用此函式可以解決此問題。3.ac class solution 錯誤 c...