62,620
社区成员
发帖
与我相关
我的任务
分享
package lesson11_1_1;
public class Wan {
static int numbers[] = {19, 23, 29, 31, 37, 2, 3, 5, 7, 11, 13, 17};
static int BinSearch1()
{//找分界点
int start = 0;
int end = numbers.length - 1;
int middle = 0;
while(numbers[start] > numbers[end])
{
if(end - start == 1)
break;
middle = (start + end) / 2;
if(numbers[middle] > numbers[start])
start = middle;
else
end = middle;
}
return start;
}
static int BinSearch2(int start, int end, int value)
{
if(value == numbers[start])
return start;
if(value == numbers[end])
return end;
int middle = (start + end) / 2;
while(start < end)
{
if(numbers[middle] == value)
break;
else if(numbers[middle] > value)
end = middle - 1;
else
start = middle + 1;
middle = (start + end) / 2;
}
return middle;
}
static int Search(int value)
{
int cut = BinSearch1();
if(value >= numbers[0])
return BinSearch2(0,cut, value);
else
return BinSearch2(cut + 1, numbers.length - 1, value);
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
System.out.println(Search(23));
}
}
package lesson11_1_1;
public class Wan {
int numbers[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37};
void Cut(int position)
{
Reverse(0,position - 1);
Reverse(position, numbers.length - 1);
Reverse(0, numbers.length - 1);
}
void Reverse(int start, int end)
{
int i = start, j = end;
while(i < j)
{
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
++ i;
-- j;
}
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
Wan w = new Wan();
w.Cut(7);
for(int i = 0; i < w.numbers.length; ++i)
System.out.println(w.numbers[i] + " ");
}
}
public class c extends f{
public static void main(String[] args) {
int[] source = {1,2,3,4,5,6,7,8,9,10};
int size = source.length;
int tmp = new Random().nextInt(10);
if(tmp > size)
{
System.out.println("truncate number is out size of length of array");
return;
}
else
{
int[] tmparr = new int[size];
int k = 0;
for(int i = tmp; i < size; i ++)
{
tmparr[k++] = source[i];
}
for(int j = 0; j < tmp; j++)
{
tmparr[k++] = source[j];
}
source = tmparr;
}
for(int i = 0;i < size; i++)
{
System.out.print(source[i]);
}
}
}
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
for(int i=200;i<1000;i++){
list.add(i+1);
}
for(int i=0;i<200;i++){
list.add(i+1);
}
int temp = new Random().nextInt(1000);
int i=0;
int j=list.size()-1;
System.out.println(temp);
while((j-i)>2){
int k = (j+i)/2;
if(temp==list.get(i)){
break;
}
if(temp > list.get(i)){
if(temp>list.get(k)){
if(list.get(k)>list.get(i)){
i=k;
}else{
j=k;
}
}else{
j=k;
}
}else{
if(temp < list.get(k)){
if(list.get(k)>list.get(i)){
i=k;
}else{
j=k;
}
}else{
i=k;
}
}
}
while(i<=j){
if(list.get(i)==temp){
break;
}
i++;
}
System.out.println(i);
}