C语言一些最基本的排序知识

时间:2022-09-03 15:42:16

1:
选择排序

#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int a[10];
int i,j,minn;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++){
minn=i;
for(j=i+1;j<10;j++){
if(a[j]<a[i])
minn=j;
}
if(minn!=i){
swap(a[i],a[minn]);
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}

2: 冒泡排序

for(i=0;i<n;i++){   //n和n-1都不影响.
for(j=i+1;j<n;j++){
if(a[i]>a[j]) //始终保持第一个是我们所要的那个值,既是这一轮所比较的数中的最小.
a[i]=a[i]^a[j]^(a[j]=a[i]); //两个数之间的交换, a=a^b^(b=a);
//swap(a[i],a[j]);
}
}