快速排序:
- #include<iostream>
- #include<algorithm>
- using namespace std;
- int a[50000];
- //快速排序
- void quick_sort(int s[], int l, int r)
- {
- if (l < r)
- {
- // swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换
- int i = l, j = r, x = s[l];
- while (i < j)
- {
- while(i < j && s[j] >= x) // 从右向左找第一个小于x的数
- j--;
- if(i < j)
- s[i++] = s[j];
- while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数
- i++;
- if(i < j)
- s[j--] = s[i];
- }
- s[i] = x;
- quick_sort(s, l, i - 1); // 对前一次排好之后i=j的位置前再次调用
- quick_sort(s, i + 1, r); // 对前一次排好之后i=j的位置后再次调用
- }
- }
- int main()
- {
- int n;
- while(cin>>n,n)
- {
- for(int i=0;i<n;i++)
- {
- cin>>a[i];
- }
- quick_sort(a,0,n-1);
- for(int i=0;i<n;i++)
- cout<<a[i]<<" ";
- cout<<endl;
- }
- return 0;
- }
冒泡排序:
- #include<iostream>
- using namespace std;
- int main()
- {
- int a[500],n,i,j,t;
- cin>>n;
- for(i=0;i<n;i++)
- {
- cin>>a[i];
- }
- for(j=1;j<=n;j++)
- {
- for(i=1;i<n;i++)
- {
- if(a[i]<a[i-1])
- {
- t=a[i];
- a[i]=a[i-1];
- a[i-1]=t;
- }
- }
- }
- for(i=0;i<n;i++)
- cout<<a[i]<<" ";
- cout<<endl;
- return 0;
- }