排序

来源:互联网 发布:班班通教学软件下载 编辑:程序博客网 时间:2024/06/06 14:12

本篇采用的是C语言版,希望能对初学者有帮助。若有不足请指教qq:952678218.   若有指教必有酬谢 

1.插入排序

  从第一个数开始默认为一个有序数列然后将后面的数依次插入

#include<stdio.h>
void InsertSort(int a[],int n)
{
int x,j;
for(int i=1;i<n;i++)
{
for(j=i;j>0&&a[j]>a[j-1];j--)
{
x=a[j];
a[j]=a[j-1];
a[j-1]=x;
}
}
for(int i=0;i<n;i++)
{
printf("%d\n",a[i] );
}
}
int main()
{
int a[8]={1,2,3,4,5,6,7,8};
InsertSort(a,8);
return 0;

 }

2.选择排序

  先选择最大值排到第一位然后依次选择剩下数的最大值排序

#include<stdio.h>
void SelectSort(int a[],int n)
{
int x,j,max;
for(int i=0;i<n;i++)
{
max=a[i];
for(j=i;j<n;j++)
{
if(a[j]>=max)
{
max=a[j];
x=j;
}
}
a[x]=a[i];
a[i]=max;
}
for(int i=0;i<n;i++)
{
printf("%d",a[i]);
}
}
int main()
{
int a[8]={1,2,3,4,5,6,7,8,};
SelectSort(a,8);
return 0;
 } 

3.冒泡排序

前后比较大小交换位置

#include<stdio.h>
void SelectSort(int a[],int n)
{
int x,j;
for(int i=1;i<n;i++)
{
for(j=1;j<n;j++)
{
if(a[j]>a[j-1])
{
x=a[j];
a[j]=a[j-1];
a[j-1]=x;
}
}
}
for(int i=0;i<n;i++)
{
printf("%d",a[i]);
}
}
int main()
{
int a[8]={1,2,3,4,5,6,7,8};
SelectSort(a,8);
return 0;
 }

原创粉丝点击