2020 绝对值排序
2016-08-05 13:01
357 查看
#include<iostream> using namespace std; int main() { int n; while (cin >> n) { if (n == 0) break; int a[100]; int m, p = 0; int l = n; while (l--&&cin >> m) { a[p] = m; ++p; } for (int i = 0; i < n - 1;++i)//冒泡排序算法双循环 for (int j = 0; j < n-1-i;++j) if (abs(a[j]) < abs(a[j+1])) swap(a[j], a[j+1]); for (int i = 0; i < n-1; ++i) cout << a[i] << ' '; cout << a[n - 1] << endl;; } return 0; }
冒泡排序就是把小的元素往前调或者把大的元素往后调。
比较是相邻的两个元素比较,交换也发生在这两个元素之间。
相同元素的前后顺序不会发生变化,冒泡法是一种稳定的排序算法。
例如:
int a[10]={3,7,2,4,5,8,9,0,6,1};
size_t n=sizeof(a)/sizeof(*a);
for(i=0;i<n-1;i++) //外层循环9次,每次有一个最大数沉底
for(j=0;j<n-1-i;j++)
if(a[j]>a[j+1]){
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
算法执行过程:
①3,2,4,5,7,8,0,6,1,9 最大数到最后
②2,3,4,5,7,0,6,1,8,9 次大数到最后
③2,3,4,5,0,6,1,7,8,9
④2,3,4,0,5,1,6,7,8,9
⑤2,3,0,4,1,5,6,7,8,9
⑥2,0,3,1,4,5,6,7,8,9
⑦0,2,1,3,4,5,6,7,8,9
⑧0,1,2,3,4,5,6,7,8,9
相关文章推荐
- CF 690C3. Brain Network (hard) from Helvetic Coding Contest 2016 online mirror (teams, unrated)
- DFS_4
- redis单主机多实例
- Java.Web学习笔记 Spring4
- 【排序】插入排序,希尔排序,选择排序,冒泡排序,堆排序详解及稳定性分析
- Mishka and trip(CF 703B)
- Codeforces Round #365 (Div. 2) 703B Mishka and trip 水题
- Linux Redis安装部署
- ruby升级
- 数学公式 —— 向量
- 开个博客瞧一瞧
- 【OpenCV】VS2015与OpenCV2.4.11配置
- selenium2.0报错:stale element reference: element is not attached to the page document的解决办法
- #107 Word Break
- struts2 中 Session的使用简介
- <实训|第十二天>用LVM对linux分区进行动态扩容
- angularjsFileUpload+Springmvc上传文件
- Oracle(入门四)
- Runtime "Apache Tomcat v7.0" is invalid. The specified Tomcat installation directory does not exist.
- EmEditor处理大文本文件