反转 冒泡排序,Arrays工具类的应用
public class Paixu {
//反转排序
public static void main(String[] args) {
int arr [] = {2,1,5,6,9,7,4}; //长度为7
// 0 1 2 3 4 5 6
for( int i = 0; i<arr.length/2;i++) {
int temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}//2与4换,1与7换,5与9换
p(arr);
//冒泡排序
int attr [] = {9,8,7,6,5,4,3,20,100};
for(int i=0;i<attr.length-1;i++)
{
for(int j=0;j<attr.length-1;j++)
{
if(attr[j]<attr[j+1]) //从大到小的顺序排列
{
int zj = attr[j];
attr[j] = attr[j+1];
attr[j+1] = zj;
}
}
}
p(attr);
//此工具类要引入
Arrays.sort(arr); //按从小到大的顺序排列出来
Arrays.fill(arr, 2, 5, 90); //给数组添值,从索引值2到索引值4,不包括5,都改为90;
int[] arrNew = Arrays.copyOf(arr, 13); //复制数组,添加的长度为13,不足位的用0补齐
int[] arrNew = Arrays.copyOfRange(arr, 2, 5); //数组的范围复制,索引值从2到5,不包括5
int[] arr = {2,1,5,111,6,9,7,4,10}; // 1 2 4 5 6 7 9 10 111
// 必须先排序 !!!!!
Arrays.sort(arr);
int i = Arrays.binarySearch(arr, 111); //排完序之后 111的索引值
System.out.println(i);//二分搜索法,必须先排序
}
public static void p( int a [] ) { //构造一个方法,如果以后还有数组想进行反转,直接传一个数组进去就可
for(int i = 0;i<a.length;i++) {
System.out.print(a[i] + " ");
}
}
}
选择排序
public class SelectSoter {
//选择排序,一般是按从小到大的顺序排序.拿索引值0的值与其他数比,把小的值拿前面来,
//再依次从索引值1跟其他的比,没有返回类型的.
public static void main(String[] args) {
int[] a = { 354, 53, 24, 164, 13, 21 };
System.out.println(Arrays.toString(a));
System.out.println("以上是原始数据");
for (int i = 0; i < a.length - 1; i++) {
int index = i;
for (int j = i + 1; j < a.length; j++) {
if (a[index] > a[j]) {
index = j;
}
}
int temp = a[i];
a[i] = a[index];
a[index] = temp;
System.out.println(Arrays.toString(a));
}
}