java基础学习--排序算法
来源:互联网 发布:php系统开发教程 编辑:程序博客网 时间:2024/04/29 12:32
选择排序:让第一个跟后面的每个元素比较,如果大于则交换量元素的位置,第二次则让第二个元素跟后面的元素一次比较(因为第一个元素的位置已经定了),一次类推直到最后一个元素.
代码:
public class TestChoose {
public static void main(String[] args) {
int[] arr = {8,3,67,43,21,56,78};
choose(arr);
printArray(arr);
}
public static void choose(int[] arr){
int temp = 0;
for(int i = 0;i < arr.length;i ++){
for(int j = i+1;j < arr.length;j ++){
if(arr[i]>arr[j]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
public static void printArray(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
当if(arr[i]>arr[j])时:为升序排列
if(arr[i]<arr[j])时:为降序排列
冒泡排序:每次相邻的两个元素的相比较,每次相比大的放后面,每次比完以后最大的元素就确定 了,然后在从第一个元素开始,每相邻的两个元素之间的比较成都java培训机构
代码:
public static void bubbleSort(int[] arr){
int temp = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length -i -1; j++) {
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
对上面中arr.length-x-1说明
-x 是为了每次少比一次,每次比完以后最后的那个元素位值就确定了,所以没有必要再比
-1 是防止数组越界,当我i=0的事,j最后一次就是arr.length,如果不减1,则会出现数组访问越界
把上面的代码中的choose(arr)改成bubbleSort(arr)可以测试冒泡排序的算法
- java基础学习--排序算法
- 基础排序算法学习
- Java基础-排序算法
- JAVA基础day04 数组学习 排序和查找基本算法
- Java排序算法学习
- 黑马程序员—Java基础学习笔记之排序算法:选择排序&冒泡排序
- java八大基础排序算法
- JAVA实现基础排序算法
- 【java基础】八大排序算法
- java基础-选择排序算法
- 【java基础】八大排序算法
- 基础排序算法总览--JAVA
- Java基础排序算法堆排序
- Java语言基础-排序算法-冒泡排序
- Java语言基础-排序算法-选择排序
- Java算法基础之快速排序算法
- Java算法基础之快速排序算法
- java 算法基础~快速排序算法
- 今天天气特别好
- UIView详解
- 隐马尔可夫模型
- Node.js 究竟是什么?
- MySQL DBA必备命令(实践中记录下来的)
- java基础学习--排序算法
- 为什么会有TCP/IP协议
- 网站建设中关于并发连接数的解释
- Gallery:收集一些用于展示一组图片的javascript控件
- Apache Digester应用实例 [转]
- Eclipse程序员要掌握的常用快捷键
- VS2008 LINK : fatal error LNK1000: Internal error during IncrBuildImage
- Windows 定制控件消息处理函数
- 设计Web应用程序时要注意可伸缩性