• 排序算法---插入排序


    插入排序工作原理:
    1.将一个数组拆分成两个数组,一个取第一个元素认为是有序的;剩余的元素认为是无序的
    2.每次从无序数组中取出第一个元素与有序数组最后一个元素进行比较
    待插入元素比较大,则放有序数组后面;如果比较小,则与有序数组倒数第二个进行比较,对有序数组从后往前进行扫描,直到遇到比他小的位置,插到它的后面
    3.依次执行上面的操作,直到序列全部有序

    数据演示:

    待排序序列:10 7 15 2 5 27 13 
    
    第0轮:【10】 7 15 2 5 27 13   //循环i=1  当前比较元素下标i 
    	
    第1轮:【7 10】 15 2 5 27 13
    
    第2轮:【7 10 15】 2 5 27 13
    
    第3轮:【2 7 10 15】 5 27 13
    	
    第4轮:【2 5 7 10 15】 27 13
    
    第5轮:【2 5 7 10 15 27】 13
    
    第6轮:【2 5 7 10 13 15 27】
    

    代码实现:

    function insertionSort($arr) {
    	$len = count($arr);
    	if($len<=0) {
    		return $arr;
    	}
    	for($i=1;$i<$len;$i++) {
    		$current = $arr[$i];   //无序序列比较值
    		$curIndex = $i; //无序序列比较值的下标
    		while($curIndex>0 && $arr[$curIndex-1]>$current) {
    			$arr[$curIndex] = $arr[$curIndex-1];
    			$curIndex--;  //有序序列从后往前进行比较
    		}
    		$arr[$curIndex] = $current;
    	}
    	return $arr;
    }
    print_r(insertionSort($arr));
    
    
  • 相关阅读:
    汇编语言实验4
    汇编语言实验3
    汇编语言实验2
    汇编语言实验1
    汇编语言学习心得
    Java 之不小心修改对象值
    实验九 根据材料编程
    实验5 编写、调试具有多个段的程序
    实验四 [bx]和loop的使用
    ASCII(侵权删)
  • 原文地址:https://www.cnblogs.com/xinxinmifan/p/sort-algorithm-insertionSort.html
Copyright © 2020-2023  润新知