1.算法思想 选择排序,从头至尾扫描序列,找出无序区最小的一个元素,和有序区的最后一个元素比较,如果较小就交换元素,如果相等就不交换元素,接着下一次循环(有序区不断增加,无序区不断往后减少),执行同样的操作,最终得到一个有序序列。 2.C++实现 #include <iostream> using ...
分类:
编程语言 时间:
2020-11-19 12:46:29
阅读次数:
11
[编程题] lc:344. 反转字符串 题目描述 输入输出例子 方法1:前后指针 Java代码 //方法1:前后指针的交换元素 public void reverseString1(char[] s) { int l = 0; int r = s.length-1; while(l<=r){ cha ...
分类:
编程语言 时间:
2020-07-19 16:11:37
阅读次数:
57
一、算法分析 (一)时间效率——排序速度(比较 & 移动) (二)空间效率——占内存辅助空间大小 (三)稳定性——A和B关键字相等,排序后先后次序保持不变 二、内部排序:不需要访问外存 (一)插入排序(每一趟:查找位置——记录后移——插入位置) 1、直接插入排序(顺序查找) (1)思想:依次将待排序 ...
分类:
其他好文 时间:
2020-07-12 19:08:43
阅读次数:
87
思想 快速排序,是选取一个元素,然后经过交换元素,保证选定元素的左边都小于它,右边元素都大于它。每次操作后,选定元素的位置就是排序后的位置。 就像多个人进行高矮个排列一样,你看了下,前面的人都比你矮,后面的人都比你高,那么你就可以不动了,随他们怎么折腾,反正你站的位置对了,他们排序好了,你也还是站在 ...
分类:
编程语言 时间:
2020-03-20 00:32:40
阅读次数:
73
?冒泡排序,一种稳定的排序算法,即相同元素之间不会发生交换.以下为代码实现,如有不足,欢迎下方留言? 1 #include<iostream> 2 3 using namespace std; 4 5 //交换元素 6 void swap(int *num1,int *num2){ 7 int te ...
分类:
编程语言 时间:
2020-03-04 12:49:53
阅读次数:
65
算法之排序二 四、冒泡排序与插入排序 为何在实际中倾向于使用插入排序而不是冒泡排序,尽管它们的时间复杂度都是O(n2),而且也都是稳定的。看一下两个算法在交换元素数值的处理上就知道了。对于冒泡排序,交换两个元素时需要引入中间变量,也就是如果需要交换 A 和 B,我们需要让 A 赋值给 C,然后让 A ...
分类:
编程语言 时间:
2020-02-17 14:24:34
阅读次数:
86
转自:http://www.cnblogs.com/mr-wid/archive/2013/01/22/2871105.html 一、向量的介绍 向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standa ...
分类:
其他好文 时间:
2019-10-04 20:57:33
阅读次数:
70
不交换元素,交换指向元素的指针的顺序,是间接排序的方法 如果一定要排序,可以通过表排序之后,再对数据排序,这里包含了“环”的概念。 ...
分类:
编程语言 时间:
2019-08-19 11:31:07
阅读次数:
92
var arr=[32,2,7,78,90,10]; //外层循环控制轮数; for (var i = 0; i arr[j+1]){ //借助第三方变量交换元素的位置 var tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; } ... ...
分类:
编程语言 时间:
2019-06-05 18:04:31
阅读次数:
85
part.1.利用二分法查找数据 (只能查找有序数据,本代码由小到大排) 改成指针形式 part.2 选择法排序(对字符串) 选择排序法:找出数据中最小(大)元素,与起始位置交换元素;再找剩下元素中最小(大),放在已排序元素后;以此类推。 (注意字符串的比较与赋值分别用strcmp()和strcpy ...
分类:
其他好文 时间:
2019-05-26 09:46:08
阅读次数:
138