zoukankan
html css js c++ java
插入排序之表插入
表插入
时间复杂度O(n^2)
附加空间O(1)
稳定排序
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #define LEN 8 // 有LEN个元素要排 struct Record { // 为了考察排序的稳定性,定义元素是结构体类型 int key; int otherinfo; int next; }; void LinkListInsertSort(Record *arr, int length) // length是要排序的元素的个数,0号单元除外 { for (int i = 2; i <= length; ++i) { int q = 0; // q跟在p之后,以方便插入结点(插在q后p前) for (int p = arr[0].next; p != 0; p = arr[p].next) { // 作为单链表,只能从前向后找(用双向链表可避免) if (arr[p].key > arr[i].key) // 这是从前向后找的缺陷:到相同的,还得继续向后(而直接插入排序是从后向前找的) break; q = p; } arr[i].next = arr[q].next; // p为0时亦然 arr[q].next = i; } } int main(void) { freopen("in.txt", "r", stdin); Record a[LEN + 1] = {0}; a[0].next = 1; //<span style="white-space:pre"> </span>0号单元作为头结点,指针域注意初始化 for (int i = 1; i <= LEN; ++i) cin >> a[i].key >> a[i].otherinfo; LinkListInsertSort(a, LEN); for (int p = a[0].next; p != 0 ; p = a[p].next) cout << a[p].key << '\t' << a[p].otherinfo << endl; return 0; } /* in.txt: 49 1 38 0 65 0 97 0 76 0 13 0 27 0 49 2 out: 13 0 27 0 38 0 49 1 49 2 65 0 76 0 97 0 */
查看全文
相关阅读:
MongoDB Java 学习笔记 (Java操作MongoDB)
SQL中CONVERT转化函数的用法
C# winform滚动字幕
修改msconfig->引导->高级选项-》最大内存为512M
把CheckedListBoxControl设置为单选框
base.AutoScaleMode = AutoScaleMode.Font; 方法“InitializeComponent”内的代码由设计器生成,不应手动修改。请移除任何更改,然后尝试重新打开设计器”。
winform 上传文件
C#winform MDI子窗体打开时内容显示不全
C# 网页信息采集(数据访问)
RTO & RPO
原文地址:https://www.cnblogs.com/jjtx/p/2533468.html
最新文章
vue-cli 自定义指令directive 添加验证滑块
vue-cli全引入jquery
vue引入swiper vue使用swiper vue脚手架使用swiper /引入js文件/引入css文件
svn服务端安装、权限修改以及客户端的使用
C/C++中堆与栈
for( unsigned int i=heapSize/2-1; i>=0; --i)
链表的插入问题
守护进程
ubuntu 修改终端命令显示的颜色
ubuntu下配置tomcat
热门文章
javascript进阶之AJAX
机器学习之SVD分解
机器学习之主成分分析
(转)机器学习十大算法都是何方神圣?看完你就懂了
(转)scikit-learn主要模块和基本使用方法
python学习之批量更改文件格式
python学习之glob模块
bzoj 1030 fail树dp
bzoj 2938 AC自动机
Apache优化:修改最大并发连接数(ThreadsPerChild的值)
Copyright © 2011-2022 走看看