新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
script
创新互联提供高防服务器租用、云服务器、香港服务器、电信内江机房等
Array.prototype.swap = function(i, j)
{
var temp = this[i];
this[i] = this[j];
this[j] = temp;
}
Array.prototype.bubbleSort = function()
{
for (var i = this.length - 1; i 0; --i)
{
for (var j = 0; j i; ++j)
{
if (this[j] this[j + 1]) this.swap(j, j + 1);
}
}
}
Array.prototype.selectionSort = function()
{
for (var i = 0; i this.length; ++i)
{
var index = i;
for (var j = i + 1; j this.length; ++j)
{
if (this[j] this[index]) index = j;
}
this.swap(i, index);
}
}
Array.prototype.insertionSort = function()
{
for (var i = 1; i this.length; ++i)
{
var j = i, value = this[i];
while (j 0 this[j - 1] value)
{
this[j] = this[j - 1];
--j;
}
this[j] = value;
}
}
Array.prototype.shellSort = function()
{
for (var step = this.length 1; step 0; step = 1)
{
for (var i = 0; i step; ++i)
{
for (var j = i + step; j this.length; j += step)
{
var k = j, value = this[j];
while (k = step this[k - step] value)
{
this[k] = this[k - step];
k -= step;
}
this[k] = value;
}
}
}
}
Array.prototype.quickSort = function(s, e)
{
if (s == null) s = 0;
if (e == null) e = this.length - 1;
if (s = e) return;
this.swap((s + e) 1, e);
var index = s - 1;
for (var i = s; i = e; ++i)
{
if (this[i] = this[e]) this.swap(i, ++index);
}
this.quickSort(s, index - 1);
this.quickSort(index + 1, e);
}
Array.prototype.stackQuickSort = function()
{
var stack = [0, this.length - 1];
while (stack.length 0)
{
var e = stack.pop(), s = stack.pop();
if (s = e) continue;
this.swap((s + e) 1, e);
var index = s - 1;
for (var i = s; i = e; ++i)
{
if (this[i] = this[e]) this.swap(i, ++index);
}
stack.push(s, index - 1, index + 1, e);
}
}
Array.prototype.mergeSort = function(s, e, b)
{
if (s == null) s = 0;
if (e == null) e = this.length - 1;
if (b == null) b = new Array(this.length);
if (s = e) return;
var m = (s + e) 1;
this.mergeSort(s, m, b);
this.mergeSort(m + 1, e, b);
for (var i = s, j = s, k = m + 1; i = e; ++i)
{
b[i] = this[(k e || j = m this[j] this[k]) ? j++ : k++];
}
for (var i = s; i = e; ++i) this[i] = b[i];
}
Array.prototype.heapSort = function()
{
for (var i = 1; i this.length; ++i)
{
for (var j = i, k = (j - 1) 1; k = 0; j = k, k = (k - 1) 1)
{
if (this[k] = this[j]) break;
this.swap(j, k);
}
}
for (var i = this.length - 1; i 0; --i)
{
this.swap(0, i);
for (var j = 0, k = (j + 1) 1; k = i; j = k, k = (k + 1) 1)
{
if (k == i || this[k] this[k - 1]) --k;
if (this[k] = this[j]) break;
this.swap(j, k);
}
}
}
function generate()
{
var max = parseInt(txtMax.value), count = parseInt(txtCount.value);
if (isNaN(max) || isNaN(count))
{
alert("个数和最大值必须是一个整数");
return;
}
var array = [];
for (var i = 0; i count; ++i) array.push(Math.round(Math.random() * max));
txtInput.value = array.join("\n");
txtOutput.value = "";
}
function demo(type)
{
var array = txtInput.value == "" ? [] : txtInput.value.replace().split("\n");
for (var i = 0; i array.length; ++i) array[i] = parseInt(array[i]);
var t1 = new Date();
eval("array." + type + "Sort()");
var t2 = new Date();
lblTime.innerText = t2.valueOf() - t1.valueOf();
txtOutput.value = array.join("\n");
}
/script
body onload=generate()
table style="width:100%;height:100%;font-size:12px;font-family:宋体"
tr
td align=right
textarea id=txtInput readonly style="width:100px;height:100%"/textarea
/td
td width=150 align=center
随机数个数input id=txtCount value=500 style="width:50px"brbr
最大随机数input id=txtMax value=1000 style="width:50px"brbr
button onclick=generate()重新生成/buttonbrbrbrbr
耗时(毫秒):label id=lblTime/labelbrbrbrbr
button onclick=demo("bubble")冒泡排序/buttonbrbr
button onclick=demo("selection")选择排序/buttonbrbr
button onclick=demo("insertion")插入排序/buttonbrbr
button onclick=demo("shell")谢尔排序/buttonbrbr
button onclick=demo("quick")快速排序(递归)/buttonbrbr
button onclick=demo("stackQuick")快速排序(堆栈)/buttonbrbr
button onclick=demo("merge")归并排序/buttonbrbr
button onclick=demo("heap")堆排序/buttonbrbr
/td
td align=left
textarea id=txtOutput readonly style="width:100px;height:100%"/textarea
/td
/tr
/table
/body
这个代码是放在DREAMWEAVER head/head标签里面
数组从第一个开始比较,完全相同(当前数组值和输入值一模一样)A就赋值为true;不一样A的值不变
import java.io.*;
public class Test
{
/**
* @param args
*/
public static void main(String[] args) throws IOException
{
// TODO Auto-generated method stub
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
System.out.println("请输入要查询的单词");
String s=br.readLine();
int count=0;
int m=0;
int begin=-1;
int end=-1;
while(true)
{
if(s.length()==1)
{
begin=str.indexOf(s);
if(m==0)
{
System.out.println("第一次出现在"+begin+"字节处");
}
m++;
end=begin;
}
else
{
begin=str.indexOf(s.substring(0,1));
if(m==0)
{
System.out.println("第一次出现在"+begin+"字节处");
}
end=str.indexOf(s.substring(s.length()-1));
}
if(begin==-1||end==-1)
{
break;
}
if(s.equals(str.subSequence(begin, end+1)))
{
count++;
str=str.substring(end+1);
}
else
{
str=str.substring(end+1);
}
}
System.out.println("单词"+s+"出现了"+count+"次");
}
}
public class Demo{
public static void main(String[] args){
int a[] = {28,39,49,78,23};
int x = 49;
//下面是最简单的冒泡排序
int temp;
for(int i=0; ia.length;++i){
for(int j=a.length-1;ji;--j){
if(a[j] a[j-1]){
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
System.out.println("排序完成:");
for(int emp:a){
System.out.print(emp+" ");
}
//下面是二分法查找(折中查找)
int first = 0;
int last = a.length-1;
int mid;
while(first=last){
mid = (first+last)/2;
if(a[mid]==x){
System.out.println("\n查找到x,在数组的第"+(mid+1)+"位");
break;
}
if(a[mid]x)
last = mid-1;
if(a[mid]x)
first = mid+1;
}
}
}
折中查询也叫折半查询,是一种查询方法,折中查询方法针对的是已经排好序的数列来说!
例如:有一组有序数列:3,6,8,10,20,23,28
现在让你用算法实现看看次数列中有没有15.。一般的方法是将数列中的数一个一个的跟15比较,直到结尾,这样要比较7次才能得出结果!
折中查询是这样的:
这是一个已经排好序的数列,所以找到这个数列中间位置的那个数,这里是10,用10跟15比较,发现要找的15比10大,所以10前面的数你就不用管了,只去10后面的数里面找,只剩:20,23,28了,看看有没有15,在10后面的数里,再找当中的那个数,这里是23,23要比15大,所以在去10到23之间里面找,15跟23里面已经没有数了,所以这个数列里面没有15.这种方法得出没有15的结果只做了2次比较,省事多了!
就用readline方法,
一行一行地查吧,
楼上的算法还是可行的,
要指出在哪一行,
直接在readline中设置一个变量就可以了,
扫过一行自增就行
另外个人认为,
还要考虑这样一种情况,
比如说关键字为
java
但
ja
va
被分开在两行中了,
这个怎么算呢?