1.冒泡排序 冒泡排序的思想,将数组分为已排(右边)和未排(左边)两部分。排序时每次在未排部分从左向右一次比较相邻2个元素,如果左大于右则互换位置。 每次都是指针从左边第一个依次相邻比较,到指针指向倒数第二个未排结束比较。 时间复杂度为O(n^2),(n为数组元素个数,复杂度为循环执行比较的次数); ...
分类:
编程语言 时间:
2019-05-13 14:34:48
阅读次数:
109
这里从个人角度,总结下python常用算法,不罗嗦,直接看代码(文字解释及推到过程网上有很多,大家可以通过度娘了解) 以下排名仅从写代码人自己习惯的顺序! NO.1 二分查找 NO.2 冒泡 NO.3 快排 NO.4 插入排序 NO.5 选择排序 NO.6 堆排序 ...
分类:
编程语言 时间:
2019-05-11 16:18:58
阅读次数:
124
接上文:【排序算法】04快速排序 选择排序的思路:共需要进行length-1次选择,每次选择要找到选择范围内最小记录的位置, 将最小记录与选择范围内的第一个记录互换位置。 向工具类ArraySorterUtils中添加选择排序的实现,代码如下: 测试代码如下: ...
分类:
编程语言 时间:
2019-05-06 09:12:26
阅读次数:
138
时间复杂度 O() 读作:bigO 分析最优算法 排序: 选择排序 插入排序 冒泡排序 归并排序 论对数器的重要性!! 比OJ更稳定 二分法(不一定要有序,只要在特定条件下) ...
分类:
编程语言 时间:
2019-05-04 09:17:02
阅读次数:
118
public class NumSort { private static void SelectionNum(int[] a) { int k,temp; //k来记录最小位置,temp用于交换 for(int i = 0;i < a.length; i++) { k = i; for(int j... ...
分类:
编程语言 时间:
2019-05-03 22:25:48
阅读次数:
160
// 不稳定排序#include using namespace std; int main() { int arr[100], tmp; for (int i = 0; i > arr[i]; for (int j = 0; j arr[k]) { tmp = arr[j]; arr[j] = a... ...
分类:
编程语言 时间:
2019-05-03 14:49:11
阅读次数:
153
选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。 ...
分类:
编程语言 时间:
2019-04-28 10:01:35
阅读次数:
138
1. 选择排序 思路:每次选择当前元素后面最小的一个数和当前元素替换。 2. 插入排序 思路:每次对当前的元素插入到前面的合适位置。下图2要插入到6之前。 两种操作:先记录temp=2,然后8右移,6右移,再将temp放入。或者2与8交换,2与6交换,结束。 操作1:挪动 操作2:交换 总结:操作2 ...
分类:
编程语言 时间:
2019-04-26 12:43:45
阅读次数:
133
选择排序:稳定 适用于:数据量大,并且对稳定性有要求的情况。 public class MergeSort { public static void main(String[] args) { int[] a= {3,4,2,5,1}; mergeSort(a,0,a.length-1); Syst ...
分类:
编程语言 时间:
2019-04-25 14:42:57
阅读次数:
173