冒泡排序(升序为例) 思路: 1. 从头开始比较每一对相临的元素,其后者比前者大则交换,直到一轮比较结束 2. 排除1中找到最大的元素,重复1的步骤 Swift class SelectionSort { var array = [5, 7, 2, 8, 9, 4, 7, 3, 2] func so ...
分类:
编程语言 时间:
2020-04-19 14:29:32
阅读次数:
60
题意描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 解题思路 一、冒泡排序/选择排序 对数组进行排序,从数组中取出最小的k个数。不需要对数组全部排序,只需要找出前k个数即可。 二、快速排序 利用快速排序 划分 的思想, ...
分类:
其他好文 时间:
2020-04-18 22:49:10
阅读次数:
54
1 void selectSort(int array[], int n) { 2 int current; 3 for (current = 0; current < n; ++current) { 4 int i, min = array[current], minIndex = current ...
分类:
编程语言 时间:
2020-04-18 11:37:00
阅读次数:
49
简述 选择排序的基本思想是:每一趟从待排序列中选取关键字最小的元素,作为有序序列的一个新的元素,直到待排序列只剩下一个元素,则完成排序。主要算法有简单选择排序和堆排序。 简单选择排序 算法思想 假设序列为L[1...n],第i趟排序从L[i...n]中选择最小的元素与L(i)交换,因此每一趟可以确定 ...
分类:
编程语言 时间:
2020-04-17 20:06:43
阅读次数:
83
描述 选择排序(Selection-sort)是一种简单直观的排序算法。 它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 以此类推,直到所有元素均排序完毕。 表现最稳定的排序算法之一,因为无论... ...
分类:
编程语言 时间:
2020-04-17 09:20:40
阅读次数:
63
排序过程详细的动态图可参考https://www.cnblogs.com/onepixel/articles/7674659.html 1.插入排序 稳定O(n^2) 稳定的意思是a=b,原本a在b前面,排序完成后a也在b前面。 插入排序的思路就是将数组逻辑上分成两段,一段是排好序的,一段是未排序的 ...
分类:
编程语言 时间:
2020-04-16 00:18:44
阅读次数:
86
目录 1. 冒泡排序 2. 选择排序 3. 插入排序 4. 快排 5. 堆排 6. 归排 1. 冒泡排序(最好是O(n), 最坏O(n2)) 原理:拿自己与上面一个比较,如果上面一个比自己小就将自己和上面一个调换位置,依次再与上面一个比较,第一轮结束后最上面那个一定是最大的数 1 def bubbl ...
分类:
编程语言 时间:
2020-04-14 12:45:57
阅读次数:
93
选择排序 def pao1(alist): x = 1 while x alist[i+1]: 如果前面的元素大于后面的元素,交换两个元素的位置 alist[i],alist[i+1] = alist[i+1],alist[i]` 选择排序是遍历整个列表,设置一个index索引为0,每次用该列表的索 ...
分类:
编程语言 时间:
2020-04-12 14:42:20
阅读次数:
58
选择排序工作原理 假设有一个数组需要使用选择排序的方法将数据从小到大排序,工作步骤如下: 查找数组中最小的元素,将其与第一位元素进行互换 对于剩下的元素,再次运行上述步骤,直到所有元素已完成排序 使用Python实现 原始列表: [4104, 8091, 732, 4719, 4860, 4893, ...
分类:
编程语言 时间:
2020-04-11 14:40:20
阅读次数:
75
稳定性的定义与意义: 通俗地讲就是能保证排序前两个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。 如果是不稳定排序,则需要第二次排序,会增加系统开销。 选择排序: 举个例子,序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏 ...
分类:
编程语言 时间:
2020-04-09 12:59:31
阅读次数:
136