代码改变世界

排序算法-------交换排序算法

2011-10-01 21:16  ...平..淡...  阅读(196)  评论(0编辑  收藏  举报

还是将每个排序的分开来写,看起来会清楚些。交换排序算法的复杂度为O(n^2).

交换排序
 1 #include <iostream>
2 using namespace std;
3
4
5 //元素交换
6 void swap(int &a,int &b)
7 {
8 int temp=a;
9 a=b;
10 b=temp;
11 }
12
13 /////////////////////////////////////////////////
14
15 /*
16 交换排序
17 原理:第i个元素与后续的n-i个元素一一比较
18 */
19 void ExchangeSort(int *a,int len)
20 {
21 int i,j;
22 for(i=0;i<len;i++)
23 {
24 for(j=i+1;j<len;j++)
25 {
26 if(a[i]>a[j])
27 swap(a[i],a[j]);
28 }
29 }
30 for(i=0;i<len;i++)
31 cout<<a[i]<<" ";
32 cout<<endl;
33 }
34
35 /////////////////////////////////////////////////
36
37
38 int main()
39 {
40 int n,i,a[20];
41 cout<<"请输入数组元素n:"<<endl;
42 cin>>n;
43 cout<<"请输入"<<n<<"个元素:"<<endl;
44 for(i=0;i<n;i++)
45 cin>>a[i];
46 ExchangeSort(a,n);
47 return 0;
48 }