1 冒泡排序
2 选择排序
3 插入排序
#include <iostream>
#include <vector>
using namespace std;
class Solution
{
public:
//冒泡排序
void bubble_sort(vector<int> &array) {
int all = array.size();
if (array.empty() != 0 || all <2){//all == 0
return;
}
for (int end = all -1; end > 0; end--)//end--
for (int i = 0 ; i < end ; i++ ){
if ( array[i] > array[i+1] ) {//前面大于后面的就交换
//swap(array,i ,i+1);
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
/*for(int i=0; i < array.size(); ++i) {
cout << array[i] << endl;
}*/
}
//选择排序
void selection_sort(vector<int> &array) {
int all = array.size();
if (array.empty() != 0 || all <2){//all == 0
return;
}
for (int i = 0; i < all; i++){
int mindex = i;//定义放i步最小值的位置
for (int j = i + 1; j < all; j++){
mindex = array[j] < array[mindex] ? j :mindex;
}//i位置后边的数与它比较
int temp = array[i];
array[i] = array[mindex];
array[mindex] = temp;
}
}
//插入排序
void Insection_sort(vector<int> &array) {
int all = array.size();
if (all == 0 && all<2){
return;
}
for (int i = 1; i < all; i++){
for (int j = i - 1; j >= 0; j--) {//i的前边的数开始
if(array[j] > array[j+1]){//前边的数比后边的数大交换
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
private:
/*void swap(int array, int i, int j ){
if (array[i] > array[j]){
int temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}*/
};
int main()
{
int a1[]={ 7, 2, 8, 9, 6, 5, 3, 0, 12,5,2};
vector<int> array(a1,a1+11);
for(int i = 0;i < array.size(); ++i) {
cout << array[i] << endl;
}
cout << "after" << endl;
Solution solu;
//solu.bubble_sort(array);
solu.selection_sort(array);
//solu.Insection_sort(array);
for(int i = 0;i < array.size(); ++i) {
cout << array[i] << endl;
}
return 0;
}