算法21 ◉‿◉ 插入排序
本帖最后由 不二如是 于 2017-5-25 07:02 编辑http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png
按照提示,完成代码,秀秀你的编程能力!
不许看答案,否则打屁屁
程序分析:
插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
一般来说,插入排序都采用in-place在数组上实现。
具体算法描述如下:
<1>.从第一个元素开始,该元素可以认为已经被排序;
<2>.取出下一个元素,在已经排序的元素序列中从后向前扫描;
<3>.如果该元素(已排序)大于新元素,将该元素移到下一位置;
<4>.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
<5>.将新元素插入到该位置后;
<6>.重复步骤2~5。
源代码:
**** Hidden Message *****
○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛
window.onload = function () {
let init = ;
let sort = [];
sort = init;
for (let i = 1, initLen = init.length; i < initLen; i++) {
let value = init;
let sortLen = sort.length;
let j = 0;
for (; j < sortLen; j++) {
if (value <= sort) {
for (let k = sortLen; k > j; k--) {
sort = sort;
}
sort = value;
break;
}
}
if (j === sortLen) {
sort = value;
}
}
console.log(sort);
}; 还有什么是你不会的么?{:9_232:} ~风介~ 发表于 2017-5-25 10:27
还有什么是你不会的么?
一个只会开车不会修车的人,怎么当鱼C最纯洁的黑天使~ 不二如是 发表于 2017-5-25 10:36
一个只会开车不会修车的人,怎么当鱼C最纯洁的黑天使~
有没有兴趣搞搞electron?{:10_256:} 支持楼主 点赞
谢谢分享 window.onload = function(){
var array = ;
function InsertionSort(arr){
for(var i = 1; i < arr.length;i++){
for(j = 0; j < i-1;j++){
if(arr < arr){
arr ^= arr;
arr ^= arr;
arr ^= arr;
}
}
}
return arr;
}
document.write(InsertionSort(array));
}; 难度大 em <!DOCTYPE html>
<html>
<head>
<title>21</title>
<meta charset="utf-8">
<script type="text/javascript">
window.onload=function(){
var yip=new Array(10,13,15,18,19,22);//已排序
var wep=new Array(9,8,17,14,16,11,20);//未排序 创建数组一个值得时候 wep=new Array();
document.write("已排序列表:"+yip+"<br>");
document.write("未排序列表:"+wep+"<br>");
charupx(yip,wep);
}
function charupx(yip,wep){
var leny=yip.length;
var lenw=wep.length;
if(lenw>0){
var pone=wep.pop();
yip.push(0);
for(var i=leny-1;i>=0;i--){
if (yip>pone) {
yip=yip;
yip=pone;
}
else{break}
}
charupx(yip,wep);
}
else{document.write("已经完成排序:"+yip);}
}
</script>
</head>
<body>
</body>
</html> 不行了不行了,写不来,坐看大佬操作{:10_280:} function fF(sequence) {
var a = [];
for (var i = 0; i < sequence.length; i ++) {
if (a.length != 0) {
var lenA = a.length;
for (var j = 0; j < lenA; j ++) {
// 如果要插入的数 大于 列表的中数 ,那么 应该在找到自己的位置时,才会插入
// 找到自己的位置 意味着 要么 比所有数都大(插在最后);要么小于某个数,
if (sequence > a) {
if (j == lenA -1) {
// 一定要比较完所有数,在进行插入操作
a.splice(j + 1,0,sequence);
}else {
continue;
}
}else {
a.splice(j,0,sequence);
//跳出第二个for
break;
}
}
} else {
a.push(sequence);
}
// alert(a);
}
console.log(a); {:5_102:} 插入排序 [修改] {:10_277:} var arr = ;
var n;
for (var i=1 ; i<arr.length ; i++){
n = arr;
for (var j=i-1 ; j>=0 ; j--){
if (n < arr){
arr = arr;
arr = n;
}
else{
break;
}
}
}
console.log(arr);
支持小甲鱼啊,赞~ 瞅瞅
页:
[1]
2