排序的讲解
来源:互联网 发布:劳丽诗雕宝 淘宝店 编辑:程序博客网 时间: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();
}
}
}
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
- 排序的讲解
- 快速排序的讲解指引
- 冒泡排序的例题讲解
- 常见排序算法的讲解
- 排序讲解
- 讲解SQL 2000的Collection排序规则
- Oracle的over分组排序讲解
- 堆排序的详细讲解及实现
- Oracle的over分组排序讲解
- 堆排序的讲解和实现
- 快速排序我见过最好的讲解
- 冒泡排序详细讲解
- 快速排序讲解+示意图
- 冒泡排序法 讲解
- 归并排序模拟讲解
- 快速排序简单讲解
- 快速排序讲解(粗略)
- 精准讲解 快速排序
- java简单的迷宫问题——堆栈的应用
- linux中fork()函数详解(原创!!实例讲解) 讲得很好啊!!!
- NOIP2016第四题前五测试数据------魔法阵
- LibEvent中文帮助文档--第13章【连接监听器:接受一个TCP连接】
- javascript之数组
- 排序的讲解
- GIT/GITHUB
- u-boot-2016.11 uboot启动简易分析(基于S5PV210)
- VB 生成exe后,动态加载窗体的show事件会出现运行时错误5的解决方法
- 好乐买李树斌:我的第一次失败
- 工具类ArrayTool(如何编写文档导出)
- 抽象工厂模式
- python的import
- RxBus封装(IOC+动态代理设计模式) — 像EventBus3,otto一样优雅