随笔分类 -  C程序设计-数组排序算法

一些自己写的数组排序算法,留个印象,常回来看看。
摘要:简简单单写个笔记,其实下午算法题尽量能拿多少就拿多少的。。。 2022年10月8日 19:45:48 主要考察五个算法: 分治法 回溯法 贪心法 动态规划法 算法特征总结 1.分治法 2.动态规划法(用于求最优解) 3.回溯法(试探) 4.贪心法(用于求满意解) 时间复杂度总结 最后来个其他的排序算 阅读全文
posted @ 2022-10-08 20:08 咸瑜 阅读(179) 评论(0) 推荐(0) 编辑
摘要:快速排序 排序思想 1. 选定Pivot中心轴 2. 将大于Pivot的数字放在Pivot的右边 3. 将小于Pivot的数字放在Pivot的左边 4. 分别对左右子序列(此时有左右2个子表),重复前三步操作。 5.注意:第4步中,如果左右子表元素 == 1,那就不用动,证明排序完了。 来个动画演示 阅读全文
posted @ 2022-10-04 14:24 咸瑜 阅读(71) 评论(0) 推荐(0) 编辑
摘要:看个动画先,急什么啊 笑死。。。。希尔这孩子打小就聪明 我笑了。 这玩意就是直接插入排序的优化版本,希尔这孩子 太调皮了8 换句话讲: 一开始我们选一个d,这个d是 “长度 / 2 ”而来的【也可以不是/2 但/2用的多】 然后以d为间距,选取距离 d 距的元素,然后进行划分为一组一组,进行直接插入 阅读全文
posted @ 2022-10-02 15:34 咸瑜 阅读(27) 评论(0) 推荐(0) 编辑
摘要:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 阅读全文
posted @ 2022-10-01 17:00 咸瑜 阅读(17) 评论(0) 推荐(0) 编辑
摘要:C语言-字符串循环左移后补算法 什么是字符串循环左移后补? 左移就是把字符串第 n+1 到 最后一个字符移到最前面,后补就是把1 到 m个字符 移到字符串最后面补上。 实现的核心思想是:先把第1个字符给临时变量然后把第2到n个字符分别向前移动1位,然后把临时变量放入到最后一位。 例:有字符串 abc 阅读全文
posted @ 2020-09-17 13:07 咸瑜 编辑
摘要:#include<stdio.h> int main() { int arr[10] = {1,3,5,7,9,2,4,6,8,10}; //随便打的 int i,j,temp; // i j 是引用下标的 temp 是用来表示不变的"比数" for(i = 0;i<10;i++) // 从第二个元 阅读全文
posted @ 2020-07-14 16:27 咸瑜 阅读(193) 评论(0) 推荐(0) 编辑
摘要:简介 :交换法排序是将每一位数与其后的所有数一一比较,如果发现符合的数据,则交换数据。 过程:首先,用第一个数依次与其后的所有数进行比较,如果存在比值大(小)的数,则交换这两个数,然后-继续向后比较其他数直到最后一个数,然后在使用第二个数与其后面的数进行比较,如果存在比其值大(小)的数,则交换这两个 阅读全文
posted @ 2020-07-13 19:07 咸瑜 阅读(581) 评论(0) 推荐(0) 编辑
摘要:第一种写法(前冒泡): /* C程序数组算法 — 冒泡法排序 * 此例子按照 大 -> 小 排序 * 原理:两两相比较,然后进行大小对调 * 比较次数: n^2 次 * 说明:冒泡排序是相对稳定的排序算法,当待排序的列有序时,效果最好! * 时间:2020年7月12日 21:59:22 */ #in 阅读全文
posted @ 2020-07-12 22:53 咸瑜 阅读(271) 评论(0) 推荐(0) 编辑
摘要:/* C程序数组算法 — 选择排序法 * 此例子按照 大 -> 小 排序 * 原理:后一个和前一个相比较,若大于/小于 就利用"位置"对调。 * 比较次数: n(n-1) / 2 次 && 互换次数:n-1 次 * 说明:此算法适用于数字比较少的排序 && 此方法和冒泡法相似的一批 * 跟着逻辑走 阅读全文
posted @ 2020-07-12 21:24 咸瑜 阅读(371) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示