将下标对应的值的交换 改为下标的交换 数组的选择排序成功,为什么会提示数组索引访问越界? ...
分类:
编程语言 时间:
2018-11-23 15:24:40
阅读次数:
201
function select_sort($arr) { //实现思路 取出第一个下标为假设的最小值然后和后面的元素比较,算出真正最小值的下标,如果不是假设的下标,则把两个元素互换 //双重循环完成,外层控制轮数,当前的最小值。内层 控制的比较次数 //$i 当前最小值的位置, 需要参与比较的元素 ... ...
分类:
编程语言 时间:
2018-11-20 00:11:04
阅读次数:
191
概念:利用树结构进行排序。 分类:1、大顶堆: 每个小树的根节点都大于子节点 升序排序使用大顶堆 2、小顶堆:每个小树的子节点都大于根节点 降序排序使用小顶堆 ...
分类:
编程语言 时间:
2018-11-19 23:58:57
阅读次数:
298
将数组第一个数字,依次和数组后面的数字比较,将小的数字放到最前面。。 ...
分类:
编程语言 时间:
2018-11-18 19:32:15
阅读次数:
185
测试环境为DEV-C++,并且选择排序,插入排序,冒泡排序,均为优化后的,若想了解具体优化过程,请参照:https://blog.csdn.net/qq_40164152 测试用例: 选择排序:基本思想:每一趟在n-i+1(i=1,2,…,n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录 ...
分类:
编程语言 时间:
2018-11-18 14:14:42
阅读次数:
241
一、如何选择合适的排序算法?1.排序算法一览表 时间复杂度 是稳定排序? 是原地排序?冒泡排序 O(n^2) 是 是插入排序 O(n^2) 是 是选择排序 O(n^2) 否 是快速排序 O(nlogn) 否 是 归并排序 O(nlogn) 是 否桶排序 O(n) 是 否计数排序 O(n+k),k是数 ...
分类:
编程语言 时间:
2018-11-18 11:37:06
阅读次数:
365
冒泡排序 通过两重循环来实现冒泡排序法, 外层的for循环用来从头开始遍历数组内的所有的元素. 内循环从数组的最后的一个元素开始便利, 每次遍历的次数等于元素总数减去排好的元素的数量, 这通过for 循环内的 j > i; 条件来实现, 每当我们正确的排好一个元素, i就加1. 内层的if判断语句实 ...
分类:
编程语言 时间:
2018-11-18 11:26:16
阅读次数:
165
堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子 ...
分类:
编程语言 时间:
2018-11-17 19:05:39
阅读次数:
140
1.数组的复制 2.查找算法(搜索) 3.插入算法 4.冒泡排序(选出老大后,后面的还要来和老大比) 5.选择排序(选出老大后,老大就可以休息了,不比了,后面以此类推) 比冒泡排序效率更高 ...
分类:
编程语言 时间:
2018-11-15 12:08:44
阅读次数:
178
title: 选择排序 tags: 数据结构与算法之美 author: 辰砂 1.概述 基本思想: 每一趟在后面 n i +1个中选出关键码最小的对象, 作为有序序列的第 i 个记录 详细思想 :给定数组:int[] arr={里面n个数据};第1趟排序,在待排序数据arr[1]~arr[n]中选出 ...
分类:
编程语言 时间:
2018-11-14 14:35:46
阅读次数:
121