冒泡排序1
void swap(vector<int> arr, int i, int j)
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
void bubbleSort1(vector<int> arr)
{
for (int i = 0; i < arr.size() - 1; i++)
{
for (int j = 0; j < arr.size() - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
swap(arr, j, j + 1);
}
}
}
}
冒泡排序2
void bubbleSort2(vector<int> arr)
{
bool swapped = true;
for (int i = 0; i < arr.size() - 1; i++) {
if (!swapped)
break;
swapped = false;
for (int j = 0; j < arr.size() - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr, j, j + 1);
swapped = true;
}
}
}
}
冒泡排序3
void bubbleSort3(vector<int> arr)
{
bool swapped = true;
int indexOfLastUnsortedElement = arr.size() - 1;
int swappedIndex = -1;
while (swapped)
{
swapped = false;
for (int i = 0; i < indexOfLastUnsortedElement; i++)
{
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
swapped = true;
swappedIndex = i;
}
}
indexOfLastUnsortedElement = swappedIndex;
}
}