一、冒泡排序法
//冒泡排序
public class BubbleSortTest{
public static void bubbleSort(int[] array){
for(int i = 0; i < array.length - 1; i++){ //循环的次数是数组长度-1
for(int j = 0; j < array.length - i - 1; j++){
if(array[j] > array[j + 1]){ //如果前面大于后面就交换
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
System.out.println("第" + (i + 1) + "次排序");
for(int k = 0; k < array.length; k++){
System.out.print(array[k] + " ");
}
System.out.println();
}
}
public static void main(String[] args){
int[] array = {4, 7, 8, 9, 3, 2};
// int x = array.length;
// System.out.println("数组长度" + x);
bubbleSort(array);
}
}
二、二分查找(Binary Search): 待查找的数组必须是有序的。
//二分查找
public class ArraySearchTest{
//被调用的数组必须是有序的
public static int binarySearch(int[] array, int value){
int low = 0;
int high = array.length - 1; //
int middle;
while(low <= high){
middle = (low + high) / 2;
//标识出每次查找出的中间数
for(int i = 0; i < array.length; i++){
System.out.print(array[i]);
if(i == middle){
System.out.print("#");
}
System.out.print("\t");
}
System.out.println();
if(array[middle] == value){
return middle;
}
//待查找的值小于中间值,右边的不要了
if(value < array[middle]){
high = middle - 1;
}
if(value > array[middle]){
low = middle + 1;
}
}
return -1;
}
public static void main(String[] args){
int[] a = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10,};
int index = binarySearch(a, 8);
System.out.println(index);
}
}
package com.bob.annotation;
public class Prime {
public static void main(String[] args) {
// 循环100以内的质数
for (int n = 2; n <= 100; n++) {
boolean flag = true;
// i从2开始,依次循环到比这个数n本身小的最大的数
// 何为质数:只能被1和它本身整数的数叫质数。所以...这样循环
for (int i = 2; i < n; i++) {
if (n % i == 0) { // 如果余数等于0,也就是除了1和其本身有其他数可以乘除他,所以置为false
flag = false;
// 跳出当前for循环,判断是否打印,并且到外面循环继续
break;
}
}
// 如果flag为true打印下面的质数
if (flag) {
System.out.println(n + "是质数");
// break; //跳出整个循环,因为break存在于外层循环
}
}
}
}