{"ScriptPreparationCode":"const arr = [...Array(100).keys()];\r\nconst x = 24;\r\nconst y = 101;\r\nlet start=0, end=arr.length-1;\r\nlet found = false;\r\nlet mid = 0;","TestCases":[{"Name":"while loop","Code":"\r\nconst arr = [...Array(100).keys()];\r\nconst x = 24;\r\nconst y = 101;\r\nlet start=0, end=arr.length-1;\r\nlet found = false;\r\nlet mid = 0;\r\n \r\n// Iterate while start not meets end\r\nwhile (start\u003C=end \u0026\u0026 found === false){\r\n\r\n // Find the mid index\r\n mid=Math.floor((start \u002B end)/2);\r\n\r\n if (arr[mid] === x) {\r\n found = true;\r\n // Else look in left or right half accordingly\r\n } else if (arr[mid] \u003C x) {\r\n start = mid \u002B 1;\r\n } else {\r\n end = mid - 1;\r\n }\r\n}","IsDeferred":false},{"Name":"function recursive","Code":"const arr = [...Array(100).keys()];\r\nconst x = 24;\r\nconst y = 101;\r\nlet start=0, end=arr.length-1;\r\nlet found = false;\r\nlet mid = 0;\r\n \r\nfunction bsearch(start, end) {\r\n if (start \u003E end) return false;\r\n mid=Math.floor((start \u002B end)/2);\r\n \r\n if (arr[mid] === x) return true;\r\n\r\n if(arr[mid] \u003E x)\r\n \treturn bsearch(start, mid-1);\r\n else\r\n return bsearch(mid\u002B1, end);\r\n}\r\n\r\nfound = bsearch(start, end);","IsDeferred":false}]}