笨鸟日记
以下是个人常用的排序算法
//快排
//处理数组可用
int sum[1000];
void kuaipai(int a, int b)
{
if(a>b)
{
return ;
}
i = a, j = b;
int temp = sum[a];//基准数的确定
while(i!=j)
{
while(sum[j]>=temp && i<j)//小于基准数的数的定位
{
j--;
}
while(sum[i]<=temp && i<j)
{
i++;
}
if(i<j)//交换
{
int p = sum[i];
sum[i] = sum[j];
sum[j] = p;
}
}
//当上述循环结束时,i和j必定重合
//交换基准数的位置
int c1 = sum[i];
sum[i] = sum[a];
sum[a] = c1;
//递归处理剩下的序列
kuaipai(1, i - 1);
kuaipai(i + 1, b);
}
接下来是常用的桶排序
#include<bits/stdc++.h>
using namespace std;
int flag[100];
int main()
{
int n;
cin >> n;
int i = 0;
while(n!=EOF)
{
flag[n]++;
++i;
cin >> n;
}
for (int i = 0; i < 100;++i)
{
if(flag[i]>0)
{
for (int temp = flag[i]; temp > 0;--temp)
{
cout << i << " "<<endl;
}
}
}
return 0;
}
以上是两大常用的排序算法
剩下的还有冒泡,时间复杂度太高就不写了。
还有最快捷的方法就是直接sort
#include<bits/stdc++.h>
using namespace std;
int flag[100];
int main()
{
int n;
cin >> n;
int i = 0;
while(n!=EOF)
{
flag[i] = n;
++i;
cin >> n;
}
sort(flag, flag + i);
return 0;
}
笨鸟到此一游。
——2020.10.19