java冒泡排序和快速排序代码
冒泡排序:
基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
publicclassBubbleSorted{
publicBubbleSorted(){
inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
inttemp=0;
for(inti=0;ia[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(inti=0;i
快速排序:
算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是有序不重复的。基本思想:假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。
假设有一个数组{12,23,34,45,56,67,77,89,90},现要求采用二分法找出指定的数值并将其在数组的索引返回,如果没有找到则返回-1。代码如下:
packagecom.test;
publicclassFindSorted{
publicstaticvoidmain(String[]args){
int[]arr=newint[]{12,23,34,45,56,67,77,89,90};
System.out.println(search(arr,12));
System.out.println(search(arr,45));
System.out.println(search(arr,67));
System.out.println(search(arr,89));
System.out.println(search(arr,99));
}
publicstaticintsearch(int[]arr,intkey){
intstart=0;
intend=arr.length-1;
while(start<=end){
intmiddle=(start+end)/2;
if(keyarr[middle]){
start=middle+1;
}else{
returnmiddle;
}
}
return-1;
}
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!