1.引子 1.1.为什么要学习数据结构与算法? 有人说,数据结构与算法,计算机网络,与操作系统都一样,脱离日常开发,除了面试这辈子可能都用不到呀! 有人说,我是做业务开发的,只要熟练API,熟练框架,熟练各种中间件,写的代码不也能“飞”起来吗? 于是问题来了:为什么还要学习数据结构与算法呢? #理由 ...
分类:
编程语言 时间:
2020-03-10 11:56:42
阅读次数:
50
输入 10个员工工号和姓名,以工号增加方式排序(姓名跟随改变),按工号查找(同时找出姓名) 代码如下: 1 # include<stdio.h> 2 # include<string.h> 3 char num[10][7]; 4 char name[10][10]; 5 char temp[10] ...
分类:
编程语言 时间:
2020-03-09 20:52:02
阅读次数:
65
一、基本思想 每一趟找到待排序数列的最小值,把它存放在已排序数列的最后面,直到把所有的数据排序完,即是第k趟找到待排序数据的最小值,然后把这个最小值存放在数组的第k(k=1,2...n)位置,直到把所有的数据排序完,一共需要进行n-1趟(n表示数组的长度),每一趟进行n-k次比较,找到该趟的最小值, ...
分类:
编程语言 时间:
2020-03-09 00:48:55
阅读次数:
65
基本排序算法 直接插入排序 方法:从当前记录开始,逐个与前面的记录比较,若当前记录小,则把前面的记录后移一位,否则插入当前记录 运行时间与待排序的记录的顺序有关 时间复杂度O(n2) 稳定性:稳定 代码 直接选择排序 做法:一次从未排序的序列中选择最小的值,与当前元素进行交换 时间复杂度: 稳定性: ...
分类:
编程语言 时间:
2020-03-08 19:33:48
阅读次数:
68
题目描述 给定一个 1 ~ n1~n 的排列 p_ipi?,接下来有 mm 次操作,操作共两种: 交换操作:给定 xx,将当前排列中的第 xx 个数与第 x+1x+1 个数交换位置。 询问操作:给定 kk,请你求出当前排列经过 kk 轮冒泡排序后的逆序对个数。 对一个长度为 nn 的排列 p_ipi ...
分类:
其他好文 时间:
2020-03-08 13:59:24
阅读次数:
94
问题:给定6个数,按从大到小的顺序输出 解决方法: 1、冒泡排序 代码: #include <stdio.h> #include <stdlib.h> const int n = 6; void main() { int i,temp,change,j,a[n]; //输入 for(i = 0;i ...
分类:
编程语言 时间:
2020-03-07 21:20:56
阅读次数:
93
1 冒泡排序 1.1 算法思想 交换排序的基本思想:两两比较待排序记录的关键字,一旦发现2个记录不满足次序要求时,则:进行交换,直到整个序列全部满足要求为止。 1.2 算法特征 + 属于【交换排序】 + "冒泡排序" + "快速排序" + 适用于【稳定性】:稳定 + 适用于【规模N】:较小 + 适用 ...
分类:
编程语言 时间:
2020-03-07 19:09:43
阅读次数:
89
冒泡排序的基本思想是: 1.在长度为n的数组,通过不断比较两个相邻元素,把值大的往后移动,当遍历完最后一个元素时,最大值存放在数组[n-1]下标位置。 2.通过步骤1的比较后,数组长度为n-1(因为arr[n-1]的元素已是整个数组最大的,没必要再比较),然后再在长n-1的数组中找出次大的数放到 a ...
分类:
编程语言 时间:
2020-03-07 19:01:29
阅读次数:
65
在Java中对一个数组进行升序、降序除了用到冒泡排序法,还可以使用Arrays类自带的sort()方法实现,升序的方法比较常见,降序比升序多一个参数条件: Collections.reverseOrder() 同时需要注意的是降序的时候数组类型只能是包装类型,不能是基本数据类型 package _3 ...
分类:
编程语言 时间:
2020-03-06 20:00:05
阅读次数:
177
排序算法 地址:https://www.cnblogs.com/onepixel/articles/7674659.html 各种排序算法复杂度 冒泡排序 (稳定) 比较相邻的元素,如果第一个比第二个大,就交换它们两个。 重复执行。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在 ...
分类:
其他好文 时间:
2020-03-05 01:36:24
阅读次数:
79