选择排序算法是经典算法之一,你可以想象你在打牌,每次拿到的一张牌就是待排序的一张,你需要每一次跟之前的牌进行比较,然后将这张牌插入到合适的位置。那么选择排序也是一样,将整个数组看成两个部分,有序部分和无序部分。现在需要将无序部分的数字跟有序部分进行比较,插入到正确的位置下列代码是插入排序的内层循环:while(insertIndex>=0&&insertVal<arr[
分类:
编程语言 时间:
2020-05-27 23:17:06
阅读次数:
109
直接插入排序 将待排序列分为已排序序列和未排序序列,不断取出未排序序列中的元素放入已排序序列中合适的位置(指放之后已排序序列仍然有序)。下面的例子中,是一个待排的数组arr,先将0位置的元素认为是一个有序序列,1~len(arr)-1为无序,慢慢从1开始取元素加入有序部分,直到所有数组元素有序。 # ...
分类:
编程语言 时间:
2020-05-26 22:06:38
阅读次数:
70
插入排序思想 假设有一个int类型,数组长度为n的数组 1.我们要保证数组下标在0~0中有序排列,这是肯定的,在0~0中只有一个数字 2.保证数组下标在0~1中有序,我们要比较下标为0与下标为1的数字,若下标为1大于下标为0的数字,就进行交换 3.保证数组下标在0~2中有序,因为下标在0~1中已经有 ...
分类:
编程语言 时间:
2020-05-25 12:21:17
阅读次数:
51
前言 Collections#sort 追踪代码进去看,会调用到Arrays.sort,看到这里时,你肯定会想,这不是很简单,Arrays.sort在元素较少时使用插入排序,较多时使用快速排序,更多时使用归并排序,不过我要告诉你,这句话有一个前提,那就是针对基本类型排序时,是按照这个顺序,而 Col ...
分类:
其他好文 时间:
2020-05-24 22:33:53
阅读次数:
81
冒泡排序: 核心思想:每一轮找出最大的元素放在数组的最后面。 public static void BubbleSort(int[] a){ //外层循环,找每一轮的最大数放在末尾 for(int i=0;i<a.length;i++){ //内层循环,遍历数组,比较得出最大值 for(int j= ...
分类:
编程语言 时间:
2020-05-22 21:31:13
阅读次数:
54
在一个有序的数组中,插入新的数据,实现这种的操作就是插入排序 function insertSort(arr) { for(let i=1;i<arr.length;i++){//外循环从1开始,默认arr[0]是有序段 for(let j=i;j>0;j--){ if(arr[j]<arr[j-1 ...
分类:
编程语言 时间:
2020-05-20 13:59:21
阅读次数:
38
数据结构与算法 关于算法的代码写了一些在:https://gitee.com/yuan_yi_xiang/data_structure_algorithm欢迎指正 基础的数据结构: 数组、链表、栈、队列 基础排序算法: 冒泡排序o(n2)、插入排序o(n2)、选择排序o(n2) 归并排序和快速排序都 ...
分类:
编程语言 时间:
2020-05-20 12:05:17
阅读次数:
73
Python Programming def insertion_sort(A): print('Before: ',A) for j in range(1,len(A)): print('Step ', j) key = A[j] i = j - 1 print(111, i, j, A[i], ...
分类:
编程语言 时间:
2020-05-18 14:41:24
阅读次数:
53
一、选择排序 1)图解 将上面的的这个图用选择排序,那么将是如下的方式来进行排序,看下图 上图用第一个元素依次和后面所有数进行比较,交换后的结果为 以此类推,用第二个数、第三个数、第四个数与后面的数进行比较 好了,到这里想必大家都明白了大概是怎么实现的了,现在我们就进入代码区来进行实现 2)代码(C ...
分类:
编程语言 时间:
2020-05-17 13:33:27
阅读次数:
70