一、插入类排序 因为小编太懒,所以后面没有详细写
1、直接插入排序
{49,38,65,97,76,13,27,_49}
1)插49
49 38,65,97,76,13,27,_49
2)插38
38,49 65,97,76,13,27,_49
以此类推。。。
算法代码: o(n^2)
void InsertSort(int R[],int n){
int i,j;
int temp;
if(i=2;i<=n;i++){
temp=R[i];
j=i-1;
while(j>=1&&R[j]>temp){
R[j+1]=R[J];
j--;
}
R[j+1]=temp;
}
}
2、折半插入排序 o(nlogn)
low\high
3、希尔排序 哦(nlogn)
又称缩小增量排序,以增量分割序列,
原始序列:49,38,65,97,76,13,27,_49,55,04
以增量5分割序列得到子序列,然后对子序列进行排序得到一趟希尔排序结果
二、交换类排序
1、冒泡排序 o(n^2)
void BubbleSort(int r[n],i
int i,j,flag,temp;
for(i=n;i>=2;i--){ //比较个数
flag=0;
for(j=2;j<=i;j++){
if(r[j-1]>r[j]){
temp=r[j];
r[j]=r[j-1];
r[j-1]=temp;
flag=1;
}
if(flag==0){return}
}
}
}
2、快速排序 “枢纽” o(nlogn)
三、选择类排序
1、简单选择排序 o(n^2)
从头到尾开始扫描,找出最小的 一个元素,和第一个元素交换,接着从剩下的元素中继续选择和交换
2、堆排序 o(logn)