八大排序算法之直接插入排序
来源:互联网 发布:centos7 ssh 端口 编辑:程序博客网 时间:2024/05/18 20:07
(1)直接插入排序(稳定排序算法)
源代码:
#include<stdio.h>
void Print(int a[],int n){
int i;
for(i=0;i<n;i++){
printf("%4d",a[i]);
}
printf("\n");
}
void InsertSort(int a[],int n){
int i,j,k,x;
for(i=1;i<n;i++){
j=i;
for(k=0;k<i&&a[j]>=a[k];k++);
x=a[j];
for(;j>=k+1;j--){
a[j]=a[j-1];
}
a[j]=x;
Print(a,n);
}
}
int main(void){
int a[100];
int n,i;
printf("Please input data number:");
scanf("%d",&n);
printf("Please input data:");
for(i=0;i<n;i++){
scanf("%d",a+i);
}
InsertSort(a,n);
return 0;
}
时间复杂度:O(2n^2)
改进代码:
void InsertSort(int a[],int n){
int i,k,x;
for(i=1;i<n;i++){
x=a[i];
for(k=i-1;k>=0&&x<=a[k];k--){
a[k+1]=a[k];
}
a[k+1]=x;
Print(a,n);
}
}
时间复杂度:O(n^2)
0 0
- 八大排序算法之直接插入排序
- 八大排序算法之直接插入排序
- 八大排序算法之直接插入排序
- 八大排序算法之直接插入排序
- 八大排序算法 之 直接插入排序
- 八大排序算法之直接插入排序和希尔排序
- Java八大排序算法之"直接插入排序"算法
- 开贴聊八大排序算法之直接插入排序(一)
- 八大排序算法之-直接插入排序 java代码
- Java八大排序算法之直接插入排序
- 八大排序算法-直接插入排序
- 八大排序算法-直接插入排序
- 八大排序之直接插入排序
- 八大排序之--直接插入排序
- PHP之八大排序算法--插入排序(-)直接插入排序
- 八大排序算法之(一)插入排序 直接插入排序
- 八大排序 -- 插入排序 之 【直接插入排序】
- 八大排序算法之插入排序算法
- POJ 1741|BZOJ 1468|Tree|树分治
- C 语言--字符串操作函数--笔记(1)
- [3752]:Is the one been second-killed first?
- Android 获取ROOT权限原理解析
- 20160325系统集成管理工程师(test2)
- 八大排序算法之直接插入排序
- Android屏幕自适应4种解决方案
- Fastsocket
- UITableViewCell的使用介绍
- Mybatis框架学习笔记一
- 数据结构(19)栈典型问题之C++实现表达式求值
- 安装了PC蓝牙驱动程序后,使用串口助手,出现蓝屏现象!
- 用VM安装Ubuntu,启动后黑屏的解决办法
- git 添加文件到git仓库