- 博客(5)
- 收藏
- 关注
原创 简单选择排序(顺序存储、链式存储)、堆排序(顺序存储)
简单选择排序(顺序存储、链式存储)、堆排序(顺序存储) 选择排序分为简单选择排序和堆排序。其基本思想是:每一趟(如第i趟)在后面n-i+1(i=1,2,…,n-1)个待排序元素中选关键字最小的元素,作为有序子序列的第i个元素,直到第n-1趟做完,待排序元素只剩下1个,就不用再选了。简单选择排序 算法思想:假设排序表为L[1…n],第i趟排序即从L[i…n]中选取关键字最小的元素与L(i)交换,每一趟排序可以确定一个元素的最终位置,这样经过n-1趟排序就可以使得整个排序表有序。顺序存储结构(数
2020-12-02 10:52:40
3689
原创 冒泡排序(顺序存储),快速排序(顺序存储)
冒泡排序,快速排序冒泡排序 冒泡排序的基本思想是:从前往后(或从后往前)两两比较相邻元素的值,若为逆序(即A[i-1]>A[i]),则交换它们,直到序列比较完。我们称它为第一趟冒泡结果是将最小的元素交换到待排序的第一个位置(或者将最大的元素交换到待排序的最后一个位置),关键字最小的元素如气泡一样逐渐往上“漂浮”直至“水面”(或者关键字最大的元素如石头一般下沉至水底)。下一趟冒泡时,前一趟确定的最小元素不再参与比较,每趟冒泡的结果是把序列中最小元素(或最大元素)放到序列的最终位
2020-11-26 18:06:23
1425
2
原创 验证回文串(单向链表、顺序表)
验证回文串题目:给定一个字符串,验证它是否是回文串。例如:“abccba” TRUE“abcddefa” FALSE在这里我使用了两种方法来解决这个问题,第一种是单链表,第二种是用顺序表。单链表 在用单链表解决这个问题的时候,由于要访问一个节点的前一个节点,随之而然的就想到了使用双向链表的方法,一个指向先驱节点,一个指向后继节点,这样访问就会十分方便。可是,使用单向链表来解决这个问题就会繁琐很多。基本上就把一个链表分成了两个链表,一个指针指向前面,从前往后遍历;一个指针
2020-11-23 18:05:25
403
原创 直接插入排序(顺序存储、链式存储),折半插入排序(顺序存储),希尔排序(顺序存储)
直接插入排序(顺序存储、链式存储),折半插入排序(顺序存储),希尔排序(顺序存储)插入排序直接插入排序将元素插入L[i]插入到已有序的子序列L[i-1]中。其基本思想是每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成。基本步骤如下:1)查找出L[i]在L[1]~L[i-1]中要插入的位置K;2)将L[i]的值复制到L[0];3)将L[K]~L[i-1]中的所有元素依次后移一个位置;4)将L[0]的值复制到L[K];空间复杂度:O(1)最好时间复杂度(全
2020-11-18 16:51:38
5099
2
原创 C语言实现进程同步与互斥
进程同步与互斥实验原理(1)同步和互斥(生产者消费者问题)同步是一种更为复杂的互斥,而互斥是一种特殊的同步。互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源(2)信号量在系统中,给予每一个进程一个信号量,代表每个进程目前的状
2020-11-17 16:14:14
9076
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅