プログラム設計では、いくつかの一般的なソートアルゴリズムがあります.
1.ソートの選択
2.泡立ちソート
3.クイックソート
4.ライブラリ関数qsort
5.sort関数
ソートアルゴリズムの継続的な学習では、後で補完し、改善します.がんばれo(∩∩)oハハ.
#include <iostream>
using namespace std;
#include <cstdio>
int main()
{
int i,j,n,a[100];
cin >> n;
for (i=0;i<n;i++)
{
cin >> a[i];
}
for (i=0;i<n;i++)
{
for (j=i+1;j<n;j++)
{
if (a[i]>a[j])
swap(a[i],a[j]);
}
}
int c=0;
for (i=0;i<n;i++)
{
if(!c)
{
cout << a[i];c++;
}
else
cout << " " << a[i];
}
cout << endl;
return 0;
}
2.泡立ちソート
#include <iostream>
using namespace std;
#include <cstdio>
int main()
{
int i,j,n,a[100];
cin >> n;
for (i=0;i<n;i++)
{
cin >> a[i];
}
for (i=0;i<n;i++)
{
for (j=0;j<n-i-1;j++)
{
if (a[j]>a[j+1])
swap(a[j],a[j+1]);
}
}
int c=0;
for (i=0;i<n;i++)
{
if(!c)
{
cout << a[i];c++;
}
else
cout << " " << a[i];
}
cout << endl;
return 0;
}
3.クイックソート
#include <iostream>
using namespace std;
void quick_sort(int data[],int low,int high)
{
int i,j,x;
if(low < high)
{
x=data[low];
i=low;
j=high;
while(i<j)
{
while(i<j&&data[j]>=x)
j--;
if(i<j)
data[i++]=data[j];
while(i<j&&data[i]<=x)
i++;
if(i<j)
data[j--]=data[i];
}
data[i]=x;
quick_sort(data,low,i-1);
quick_sort(data,i+1,high);
}
}
int main()
{
int a[122];
int n,i,c=0;
cin >> n;
for (i=0;i<n;i++)
cin >> a[i];
quick_sort(a,0,n-1);
for (i=0;i<n;i++)
{
if(!c)
{
cout << a[i];
c++;
}
else
cout << " " << a[i];
}
cout <<endl;
return 0;
}
4.ライブラリ関数qsort
qsort(a,n,sizeof(int),cmp);
int cmp(const void *a, const void *b)
{return *(int *)a - *(int *b);}
5.sort関数
#include <algorithm>
int a[n];
sort(a,a+n);//( );
ソートアルゴリズムの継続的な学習では、後で補完し、改善します.がんばれo(∩∩)oハハ.