<?php /** * 插入排序 * @param Array $a 无序集合 * @return Array 有序集合 */ function insertSort($a) { $temp; $i; $j; $size_a = count($a); # 从第二个元素开始 for ($i = 1; $i < $size_a; $i++) { if ($a[$i] < $a[$i-1]) { $j = $i; # 保存当前元素的位置 $temp = $a[$i]; # 当前元素的值 # 比较左边的元素,如果找到比自己更小的,向右移动元素,否则插入元素到当前位置 while($j>0 && $temp<$a[$j-1]) { $a[$j] = $a[$j-1]; $j--; } # 插入元素 $a[$j] = $temp; } } return $a; } /** * 获取随机数 * @param Integer $size 数量 * @return Integer */ function randomNumber($size = 10) { $rand = array(); srand(time(NULL)); for ($i = 0; $i < $size; $i++) { array_push($rand, mt_rand(0,1000)); } return $rand; } $a = randomNumber(); echo sprintf("Unsorted list %s\n", implode(" ", $a)); echo sprintf("Sorted list %s\n", implode(" ", insertSort($a)));
以上就是本文所述的全部内容了,希望大家能够喜欢。
本文向大家介绍Java实现直接插入排序和折半插入排序算法示例,包括了Java实现直接插入排序和折半插入排序算法示例的使用技巧和注意事项,需要的朋友参考一下 直接插入排序 1 排序思想: 将待排序的记录Ri插入到已经排好序的记录R1,R2,……,R(N-1)中。 对于一个随机序列而言,就是从第二个元素开始,依次将这个元素插入到它之前的元素中的相应位置。它之前的元素已经排好序。 第1次排序:将第2个
本文向大家介绍ruby实现的插入排序和冒泡排序算法,包括了ruby实现的插入排序和冒泡排序算法的使用技巧和注意事项,需要的朋友参考一下 1、插入排序 2、冒泡排序
因此,我对数据结构很陌生,我在对数组进行排序时,在尝试了几天之后,我偶然发现了双链表的插入排序。我仍然无法理解排序有什么问题,是的,我已经在线检查过,我不能只插入排序,我需要对函数参数中传递的列表进行排序,它的名称是internationSort(Dlinkedlist-arr)。 ` ` 我尝试实现它,但我被困住了,因为处理数组的逻辑有点不同,因为我们正在使用 next 和 prev 指针,这使
本文向大家介绍Python实现冒泡,插入,选择排序简单实例,包括了Python实现冒泡,插入,选择排序简单实例的使用技巧和注意事项,需要的朋友参考一下 本文所述的Python实现冒泡,插入,选择排序简单实例比较适合Python初学者从基础开始学习数据结构和算法,示例简单易懂,具体代码如下: 感兴趣的朋友可以动手测试一下本文实例,相信会有新的收获。
本文向大家介绍插入排序,包括了插入排序的使用技巧和注意事项,需要的朋友参考一下 这种分类技术与卡片分类技术相似,换句话说,我们使用插入分类机制对卡片进行分类。对于这项技术,我们从数据集中拾取一个元素,并移动数据元素以放置一个位置,以便将拾取的元素插入回数据集中。 插入排序技术的复杂性 时间复杂度:最佳情况为O(n),平均情况和最差情况为O(n ^ 2) 空间复杂度:O(1) 输入输出 算法 输入-
插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。 1. 算法步骤 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一