文章标题
来源:互联网 发布:ins软件 编辑:程序博客网 时间:2024/06/07 14:33
Java排序算法
一、直接排序
/* 选择排序。 以一个角标的元素和其他元素进行比较。 在内循环第一次结束,最值出现的头角标位置上。 */ public static void selectSort(int[] arr) { for(int x=0; x<arr.length-1; x++) { for(int y=x+1; y<arr.length; y++)//为什么y的初始化值是 x+1? 因为每一次比较, //都用x角标上的元素和下一个元素进 行比较。 { if(arr[x]>arr[y]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } } }
二、冒泡排序
/* 冒泡排序。 比较方式:相邻两个元素进行比较。如果满足条件就进行位置置换。 原理:内循环结束一次,最值出现在尾角标位置。 */ public static void bubbleSort(int[] arr) { for(int x=0; x<arr.length-1; x++) { for(int y=0; y<arr.length-x-1; y++)//-x:让每次参与比较的元减。 //-1:避免角标越界。 { if(arr[y]>arr[y+1]) { int temp = arr[y]; arr[y] = arr[y+1]; arr[y+1] = temp; } } }}
三、拆半查找(二分法)
/* 为了提高查找效率,可使用折半查找的方式,注意:这种查找只对有序的数组有效。 这种方式也成为二分查找法。 */ public static int halfSeach(int[] arr,int key) { int min,mid,max; min = 0; max = arr.length-1; mid = (max+min)/2; while(arr[mid]!=key) { if(key>arr[mid]) min = mid + 1; else if(key<arr[mid]) max = mid - 1; if(min>max) return -1; mid = (max+min)/2; } return mid; }
#
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- joomla如何通过目录的id获得文章列表
- Android系统下打开指定的浏览器
- Java(Android)线程池
- Java基础系列七、排序+常用对象+集合
- 在北上广工作压强下,幸福是怎么炼成的
- 文章标题
- 提取字符串中的数字-非指针版-(C语言描述)
- ThreadLocal
- LeetCode 10 - Regular Expression Matching
- XML:使用JAXB完成JavaBean和xml的转化
- Objective-c语言_文件基本操作
- Putty X11 proxy: unable to connect to forwarded X server: Network error:connection refused
- 隔空取物——reflection
- iOS block 初探