Java数组三种排序
为了简单一点,只使用一个数组
冒泡排序
public class sort {
public static void main(String[] args){
int[] nums = {1,3,8,0,10,2,11};
/**
* 冒泡
*/
for (int i = 0; i < nums.length - 1; i++) {
for (int j = 0; j < nums.length - i -1; j++) {
if(nums[j] > nums[j + 1]){
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
System.out.println("冒泡排序后的数组为:");
for (int i = 0; i < nums.length ; i++) {
System.out.print(nums[i] + "\t");
}
System.out.println();
选择排序
/**
* 选择排序
*/
for (int i = 0; i < nums.length; i++) {
int min = nums[i];
int minIndex = i;
for (int j = i + 1; j < nums.length; j++) {
if(min > nums[j]){
min = nums[j];
minIndex = j;
}
if(minIndex > i){
int temp = nums[minIndex];
nums[minIndex] = nums[i];
nums[i] = temp;
}
}
}
System.out.println("选择排序后的数组为:");
for (int i = 0; i < nums.length ; i++) {
System.out.print(nums[i] + "\t");
}
System.out.println();
二分查找
/**
* 二分查找
*/
Scanner scan = new Scanner(System.in);
System.out.println("请输入要查找的元素N:");
int N = scan.nextInt();
int low = 0;
int high = nums.length - 1;
while(high >= low){
int mid = (low + high) / 2;//中间值
if(N > nums[mid]){
low = mid + 1;
}
else if(N < nums[mid]){
high = mid - 1;
}
else{
System.out.println("恭喜,找到该元素!元素下标为:"+mid);
break;
}
}
if( N < low || N > high || low > high){
System.out.println("没有这元素!");
}