三傻排序(冒泡,选择,插入) 今天第一天搞点简单的文章目录前言一 冒泡排序二 选择排序三 插入排序前言今天先搞点简单的后面会逐渐增加难度也是我自己的一个复习进度一、冒泡排序本质上就是n-1轮循环然后每一轮把最大的数换到右边去下一轮就少处理一个数换的方法就是挨着比较第一个和第二个比大的话就到右边第二个和第三个比大的话就到右边。这样不管怎么样大的都会到右边//冒泡排序 #include bits/stdc.h using namespace std; const int M1100; int x[M1]; int n; int main() { cinn; for(int i1;in;i) { cinx[i]; } //输入n个数 for (int in-1;i1;i--) //最多进行n-1轮 { for(int j1;ji;j) //每一轮冒泡可以确定一个最大的数 { if(x[j]x[j1]) { swap(x[j],x[j1]); } } } for(int i1;in;i) { coutx[i] ; } }二 选择排序就是每一轮选一个第i小的数排在第i位//选择排序 #include bits/stdc.h using namespace std; const int M1100; int x[M1]; int n; int main() { cinn; for(int i1;in;i) { cinx[i]; } //输入n个数 for(int i1;in;i) { int ansi; //最小值的下标 for(int ji;jn;j) { if(x[j]x[ans]) //找[i,n]的最小值比较后更新下标 { ansj; } } swap(x[i],x[ans]); //将小的值放在最前面的位置 /** 注意这里i1时找的是整个数组的最小值i2时找的是第二小的值 **/ } for(int i1;in;i) { coutx[i] ; } return 0; }三 插入排序从[1,1]开始排[12]如果遇到当前数比前面的数小就一直往左移动一直到它前面的数比它小为止这样每一个都是有序的一直到[1,n]//插入排序 //两个条件1.左边没数了停止。2.左边的比右边的小停止 #include bits/stdc.h using namespace std; const int M1100; int x[M1]; int n; int main() { cinn; for(int i1;in;i) { cinx[i]; } //输入n个数 for(int i1;in;i) //对区间[1i]进行排序 { for(int ji;j1;j--) { if(j1||x[j-1]x[j]) //条件 { break; } else { swap(x[j-1],x[j]); } } } for(int i1;in;i) { coutx[i] ; } }