快排没搞明白
写几个我能学会的的排序方法
C++ 代码
#include<iostream>
const int N = 1000;
int nums[N];
//冒泡
void sort0(int a[], int l, int r)
{
for(int i = l;i<r;i++)
{
for(int j = l;j<r;j++)
{
if(a[j]>a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
//插入排序
void sort1(int a[], int l, int r)
{
for(int i = l+1;i<=r;i++)
{
for(int j = i;j>l&&a[j]<a[j-1];j--)
{
int temp =a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
//选择排序
void sort2(int a[], int l, int r)
{
for(int i = l;i<=r;i++)
{
int min = i;
for(int j = i+1;j<=r;j++)
{
if(a[min]>a[j])
{
min = j;
}
}
int temp =a[i];
a[i] = a[min];
a[min] = temp;
}
}
int main()
{
int n,l,r;
std::cin>>n>>l>>r;
for(int i = 0;i<n;i++)
{
std::cin>>nums[i];
}
sort1(nums,l,r);
for(int i = 0;i<n;i++)
{
std::cout<<nums[i]<<" ";
}
std::cout<<std::endl;
return 0;
}