本文总结了数组排序的四种方法,提供给大家使用。制作不易,给个高分,谢谢。
选择排序
冒泡排序(小学生排序)
sort排序
交换排序
我们先来看第一种方法:选择排序。
这种排序的主要思路就是将第一小的元素找出来,放在第一位(也就是第i位),再将第二小的元素找出来,放在第二位……以此类推。这个过程需要用到打擂法,而且要用双重循环。
#includeusing namespace std; int main() { int a[10000],n,shu,js; cin>>n; for(int i=1;i>a[i]; } for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++)//从第i+1个数开始寻找,因为前面已经找过并排好了 { if(a[j]<a[i]) { js=j; } shu=a[i]; a[i]=a[js]; a[js]=shu; } } for(int i=1;i<=n;i++) { cout<<a[i]<<" "; } return 0; }
我们在来看第二种方法:冒泡排序。
这种方法也叫小学生排序。
这种排序的思想就是从第一个数开始比较相邻数大小,如果第一个数大于第二个数,就将其互相交换。同样要用到双重循环。
#includeusing namespace std; int main() { int a[10000],n,shu,js; cin>>n; for(int i=1;i>a[i]; } for(int i=1;i<=n;i++) { for(int j=1;ja[j+1]) { shu=a[j]; a[j]=a[j+1]; a[j+1]=shu; } } } for(int i=1;i<=n;i++) { cout<<a[i]<<" "; } return 0; }
第三种排序就是调用sort函数排序,使用方法如下:
sort(数组的开始地址(数组名),数组名+数组的结束地址+1);
一般数组的开始地址就是数组的名字,结束地址就是输入的数组元素的数量(在此题中为n)
这种方法也是最简单、最快捷的。
#includeusing namespace std; int main() { int a[10000],n; cin>>n; for(int i=1;i>a[i]; } sort(a,a+n+1); for(int i=1;i<=n;i++) { cout<<a[i]<<" "; } return 0; }
第四种排序是我自己写的,我给它取名叫做交换排序,因为其中会交换数据,但不是像冒泡排序(详情见上)那样进行挨个比较,而是一次将一个元素(a[i])与所有元素进行比较,如果小于某个元素,就将其与大的那个元素交换,每执行一次就能排好一个元素。
#includeusing namespace std; int main() { int a[10000],n,shu; cin>>n; for(int i=1;i>a[i]; } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(a[i]<a[j]) { shu=a[i]; a[i]=a[j]; a[j]=shu; } } } for(int i=1;i<=n;i++) { cout<<a[i]<<" "; } return 0; }
以上是我总结的四种数组排序方法,希望对大家有用,制作不易,给个高分,谢谢。
0.0分
1 人评分
最长单词 (C语言代码)浏览:1474 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:633 |
蛇行矩阵 (C语言代码)浏览:792 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:606 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:642 |
【亲和数】 (C语言代码)浏览:628 |
生日日数 (C语言代码)浏览:1575 |
简单的a+b (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:2174 |
顺子浏览:1369 |