排序的讲解

来源:互联网 发布:劳丽诗雕宝 淘宝店 编辑:程序博客网 时间:2024/06/05 09:11
import java.util.Arrays;
import java.util.Collections;


//import java.until.Arrays;
public class PaiXu {


/**排序的讲解
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
        int[][] arr=new int[2][3];
        int[][] b={{1,2,3,4},{3,4,5,6}};//给二维数组赋值        
erweishuzu(b);

//也可以按照如下方式来定义二维数组
int [][] c=new int[2][];//可以先不定义没个数组能放几个数
c[0]=new int[5];//第1个数组里可以放5个数
c[2]=new int[3];//第2个数组里可以放4个数

// int[] arr={23,4,54,166,2};

// Arrays.sort(arr);//直接快捷方式升序
/*selecctSort(arr);//选择排序 */
//  bubbleSort(arr); //冒泡排序
/*for (int i=0;i<arr.length;i++) //查询出数组的所有坐标的数
{
selectarr(arr,arr[i]);//找到数据结果显示
}*/
// int key=4;//需要查找的数
// //输出数组的位置
// System.out.println("从小到大的排序结果:");
// for (int i=0;i<arr.length;i++)
// {
// if(i!=arr.length-1)//最后一个数字
// System.out.print(arr[i]+",");
// else 
// System.out.print(arr[i]);
// }
// System.out.println("\n");
// int index=halfSearch(arr,key);
// System.out.println("二分法查找通过编写的函数index="+index);
//
// int index2=Arrays.binarySearch(arr, key);
// System.out.println("二分法查找Arrays.binarySearch:"+index2);
}

//案例①排序:选择排序,结果:无结果,参数:整型数组;
public static void selecctSort(int[] arr) 
{
for(int i=0;i<arr.length;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[j]<arr[i])
{
//交换
jiaohuan(arr,j,i);
}
}
}

//案例②:冒泡排序,结果:无结果,参数:整型数组
public static void bubbleSort(int arr[])
{
for (int i=0;i<arr.length;i++)
{
for(int j=0;j<arr.length-i-1;j++)
{
if(arr[j+1]<arr[j])
{
jiaohuan(arr,j+1,j);
}
}
}
}
// 案例③:数组查找,查询这个数字在数组哪里,如没有就报不存在
public static void selectarr(int []arr,int qty)
{
int i=0;
for (;i<arr.length;i++)
{
if(qty==arr[i])
{
System.out.println("你要找的"+qty+"数字了,在数组的下标"+i+"里");
break;
}
}
if (i==arr.length){ System.out.println("很抱歉,你要奴婢找的数字"+qty+"不在这里"); }
}

//案例④:二分法查找,提示:确定如果数组的数据多,性能就会低
// 前提调条件:被查询的数组必须是有顺序的,
// 结果:下标或者-1;参数:数组,和被查找的数
public static int halfSearch(int []arr,int qty)
{
int min=0;
int max=arr.length-1;
int mid=0;
while(min<=max)
{
mid=(min+max)>>1;
if(qty>arr[mid])
min=mid+1;
else if(qty<arr[mid])
max=mid-1;
else 
return mid;
}
return -1;
}
//交换整型中的两个下标中的数
public static void jiaohuan(int[] arr,int i,int j)
{
int c;
c=arr[i];
arr[i]=arr[j];
arr[j]=c;
}
// 按钮⑤二维数组
public static void erweishuzu(int[][]arr)
{
for(int i=0;i<arr.length;i++)//得到一维数组的长度,也就是有多少行
{
for(int j=0;j<arr[i].length;j++)//得到每行每列中的数组
{
System.out.print(arr[i][j]);
}
System.out.println();
}
}
}
0 0
原创粉丝点击