第十章(1).直接插入排序
来源:互联网 发布:盛世赢家软件下载 编辑:程序博客网 时间:2024/05/17 01:12
#include <iostream>
using namespace std ;#define MAXSIZE 20 //存储元素的顺序表的最大长度
typedef int KeyType ; //关键字类型
typedef int InfoType ; //其他数据项类型typedef struct {
KeyType key ;
InfoType otherinfor ; //其他数据项
} RedType ;typedef struct {
RedType r[ MAXSIZE + 1 ] ; //r[0]闲置或用作哨兵单元
int length ; //顺序表长度
} SqList ; //顺序表类型void InPut( SqList &L )
{
int value = 0 ;
int i = 1 ;
while( i < ( MAXSIZE + 1 ) )
{
cin >> value ;
if( value == -1 ) //以-1为结束符
break ;
L.r[ i ++ ].key = value ;
}
L.length = i - 1 ;
}void InsertSort( SqList &L ) //引用 排序顺序为从小到大
{
int j = 0 ;for( int i = 2 ; i < L.length + 1 ; ++ i )
{
if( L.r[ i ].key < L.r[ i - 1 ].key )
{
L.r[ 0 ] = L.r[ i ] ;
L.r[ i ] = L.r[ i - 1 ] ;
for( j = i - 2 ; L.r[ 0 ].key < L.r[ j ].key ; -- j ) //画图推理
L.r[ j + 1 ] = L.r[ j ] ; //记录后移
L.r[ j + 1 ] = L.r[ 0 ] ; //插入到正确的位置
}
}
}void OutPut( SqList L )
{
for( int i = 1 ; i < L.length + 1 ; ++ i )
{
cout << L.r[ i ].key << ' ' ;
}
cout << endl ;
}int main( )
{
SqList L ;InPut( L ) ;
InsertSort( L ) ;
OutPut( L ) ;return 0 ;
}
这一章的内部排序和下一章的外部排序吧,主要学思想!思想最重要!我这儿的代码都是浮云,浮云!
- 第十章(1).直接插入排序
- 第十四周项目2-直接插入排序
- 第十四周——项目一验证算法(2)插入排序之直接插入排序
- 排序1:插入排序(直接插入排序)
- 排序算法(1)-直接插入排序
- 排序 - 插入排序 [1 - 直接插入排序]
- 第十章(2).折半插入排序
- 排序(直接插入排序)
- 插入排序一(直接插入排序)
- 算法---插入排序(直接插入排序)
- 第十四周项目一(2)——验证算法之直接插入排序
- 第十四周项目一(2)——验证算法之直接插入排序
- 第十四周 项目一 验证算法 2.直接插入排序
- 插入排序(希尔排序、直接插入、折半插入排序)
- 数据结构-插入排序(直接插入排序+折半插入排序)
- 7.2.1 直接插入排序
- 1、直接插入排序InserTSort()
- 直接插入排序(稳定)
- IT人不可不听的10个职场故事!
- [转]我奋斗了18年不是为了和你一起喝咖啡
- 第九章(2).次优查找树
- 第九章(4).平衡二叉树
- 第九章(5).哈希表
- 第十章(1).直接插入排序
- Oracle 11g R2安装手册 For Win7 (图文教程)
- 第十章(2).折半插入排序
- edx安装汉化包
- 第十章(4).希尔排序
- PHP纪实
- 第十章(5).冒泡排序
- 第十章(6).快速排序
- 第十章(7).选择排序