一、冒泡排序
/*
冒泡排序
*/
#include <bits/stdc++.h>
#define MAX 11
using namespace std;
int main()
{
int data[MAX]={0};
int temp;
for(int i = 1;i<MAX;i++ )
cin>>data[i];
for(int j = MAX;j>0;j--)
for(int i = 1;i<j;i++ ){
if(data[i]>data[i+1]) {
data[i] = data[i+1]+data[i];//交换位置
data[i+1] = data[i]-data[i+1];
data[i] = data[i]-data[i+1];
}
}
for(int i = 1;i<MAX;i++ ){
cout<<data[i]<<" ";
}
return 0;
}
二、选择排序
/*
选择排序
比较所有数,找到最小的数,把它放在第一个位置。
*/
#include <bits/stdc++.h>
#define MAX 11
using namespace std;
int main(){
int a[MAX]={0};
int min = 1;
int i,j,k;
for(int i = 1;i<MAX;i++){
cin>>a[i];
}
for(j = 1;j<MAX;j++){
for(i=j,min = j;i<MAX;i++)
if(a[i]<a[min]) min = i;//找到剩下的数中最小数的下标
if(j!=min){//如果最小数不是排在剩下数中的第一个
a[min]=a[j]+a[min];//交换位置
a[j] = a[min]-a[j];
a[min] = a[min]-a[j];
}
}
for(int i = 1;i<MAX;i++){
cout<<a[i]<<" ";
}
return 0;
}
三、插入排序
/*
插入排序
从第三个数开始的每个数与前面已排好序的数比较,如果小于前面的数,就
交换位置。
*/
#include <bits/stdc++.h>
#define MAX 11
using namespace std;
int main(){
int a[MAX]={0};
int min = 1;
int i,j,k;
for(int i = 1;i<MAX;i++){
cin>>a[i];
}
for(i = 2;i<MAX;i++){//i指向要插入的元素
for(j = 1;j<i;j++){
if(a[i]<a[j]){
a[i] = a[i]+a[j];//交换位置
a[j] = a[i]-a[j];
a[i] = a[i]-a[j];
}
}
}
for(int i = 1;i<MAX;i++){
cout<<a[i]<<" ";
}
return 0;
}
未完待续……