mirror of
https://github.com/huihut/interview.git
synced 2025-12-18 13:04:38 +03:00
更新算法
This commit is contained in:
@@ -1,15 +1,27 @@
|
||||
/*
|
||||
|
||||
选择排序思路:
|
||||
1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
|
||||
2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
|
||||
3. 针对所有的元素重复以上的步骤,除了最后一个。
|
||||
4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
|
||||
|
||||
*/
|
||||
|
||||
// 冒泡排序
|
||||
void BubbleSort(vector<int>& v) {
|
||||
if (v.size() <= 0)
|
||||
return;
|
||||
int temp;
|
||||
for (int i = 0; i < v.size() - 1; ++i) {
|
||||
for (int j = 0; j < v.size() - 1 - i; ++j) {
|
||||
if (v[j] > v[j + 1]) { // 从小到大
|
||||
temp = v[j];
|
||||
v[j] = v[j + 1];
|
||||
v[j + 1] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
int len = v.size();
|
||||
for (int i = 0; i < len - 1; ++i)
|
||||
for (int j = 0; j < len - 1 - i; ++j)
|
||||
if (v[j] > v[j + 1])
|
||||
swap(v[j], v[j + 1]);
|
||||
}
|
||||
|
||||
// 模板实现冒泡排序
|
||||
template<typename T> //整數或浮點數皆可使用,若要使用物件(class)時必須設定大於(>)的運算子功能
|
||||
void bubble_sort(T arr[], int len) {
|
||||
for (int i = 0; i < len - 1; i++)
|
||||
for (int j = 0; j < len - 1 - i; j++)
|
||||
if (arr[j] > arr[j + 1])
|
||||
swap(arr[j], arr[j + 1]);
|
||||
}
|
||||
Reference in New Issue
Block a user