每次用到排序算法时都要临时翻书或百度,但是用完之后又忘了。。。
只附代码,便于查阅。随时补充。
(均是从小到大排序)
一、直接插入排序
void Insert(int a[], int n){
int i,j,temp;
for(i=1;i<n;i++){ //i从第二个位置开始,最后一个位置结束
temp=a[i];
j=i-1;
while(j>=0 && temp<a[j]){
a[j+1]=a[j];
j--;
}
a[j+1]=temp;
}
}
二、简单选择排序
//简单选择
void Select(int a[], int n){
int i,j,k;
for(i=0;i<n-1;i++){ //i从第一个位置开始,倒数第一个位置结束
k=i; //k的存在为了保证 i正常后移
for(j=i+1;j<n;j++)
if(a[j]<a[k]) //k追踪后面元素中的最小值
k=j;
if(k!=i){
int temp;
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
三、冒泡排序
//冒泡排序
void Bubble(int a[], int n){
int i,j,temp;
for(j=n-1;j>0;j--)
for(i=0;i<j;i++)
if(a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
遇到其他排序算法会继续补充。