从小到大排序
//头文件
#include <vector>
using namespace std;
//从小到大排序
void bubbleSort_MinToMax(vector<int> &numberList)
{
int N = numberList.size();
for (int i = 1; i < N; i++)
{
for (int j = 0; j < N - i; j++)
{
if (numberList[j] > numberList[j + 1])
{
//交换
int buffer = numberList[j];
numberList[j] = numberList[j + 1];
numberList[j + 1] = buffer;
}
}
}
}
从大到小排序:
//头文件
#include <vector>
using namespace std;
//从大到小排序
void bubbleSort_MaxToMin(vector<int> &numberList)
{
int N = numberList.size();
for (int i = 1; i < N; i++)
{
for (int j = 0; j < N - i; j++)
{
if (numberList[j] < numberList[j + 1])
{
//交换
int buffer = numberList[j];
numberList[j] = numberList[j + 1];
numberList[j + 1] = buffer;
}
}
}
}
#include <iostream>
#include <vector>
using namespace std;
//从小到大排序
void bubbleSort_MinToMax(vector<int> &numberList)
{
int N = numberList.size();
for (int i = 1; i < N; i++)
{
for (int j = 0; j < N - i; j++)
{
if (numberList[j] > numberList[j + 1])
{
//交换
int buffer = numberList[j];
numberList[j] = numberList[j + 1];
numberList[j + 1] = buffer;
}
}
}
}
//从大到小排序
void bubbleSort_MaxToMin(vector<int> &numberList)
{
int N = numberList.size();
for (int i = 1; i < N; i++)
{
for (int j = 0; j < N - i; j++)
{
if (numberList[j] < numberList[j + 1])
{
//交换
int buffer = numberList[j];
numberList[j] = numberList[j + 1];
numberList[j + 1] = buffer;
}
}
}
}
int main()
{
//输入原始数据
//原始数据为:2 9 4 3 6 0 5 8 7 1
vector<int> numberList;
numberList.push_back(2);
numberList.push_back(9);
numberList.push_back(4);
numberList.push_back(3);
numberList.push_back(6);
numberList.push_back(0);
numberList.push_back(5);
numberList.push_back(8);
numberList.push_back(7);
numberList.push_back(1);
//打印原始数据
int N = numberList.size();
for (int i = 0; i < N; i++)
{
cout << numberList[i];
if (i == N - 1)
{
cout << endl;
}
else
{
cout << " ";
}
}
//冒泡排序
bubbleSort_MinToMax(numberList);//从小到大
//bubbleSort_MaxToMin(numberList);//从大到小
//打印排序后的数据
for (int i = 0; i < N; i++)
{
cout << numberList[i];
if (i == N - 1)
{
cout << endl;
}
else
{
cout << " ";
}
}
//system("pause");//vs环境下需要加上这句
return 0;
}
#include <stdio.h>
int main(){
int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9};
int i, j, temp, isSorted;
//优化算法:最多进行 n-1 轮比较
for(i=0; i<10-1; i++){
isSorted = 1; //假设剩下的元素已经排序好了
for(j=0; j<10-1-i; j++){
if(nums[j] > nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
isSorted = 0; //一旦需要交换数组元素,就说明剩下的元素没有排序好
}
}
if(isSorted) break; //如果没有发生交换,说明剩下的元素已经排序好了
}
for(i=0; i<10; i++){
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}