网站首页 > java教程 正文
今天为大家介绍一个java的常用算法——java排序算法,希望能在日常学习过程中对您有所帮助。具体如下:
ChooseSort源程序
public class ChooseSort {
private static void ChooseSort (int [] a){
for(int i = 0; i < a.length; i++){
//对数组循环,假设数据排在前面的元素总比后面的小,然后与后面的数据进行比较
int k = i;
for(int j = i+1; j <a.length; j++){//对数据遍历,寻找最小的数据元素的数组下标
if(a[j]<a[k])
k = j;
}
//最少值与a[i]交换
if(i != k){
//对i和k进行比较,如果不相等,则i和j下标表示的元素不是同一个元素,则交换a[i],a[k]的值,保证最小值总在最前面
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}
public static void main(String[] args) {
int[] test1 = { 51, 38, 49, 27, 62, 5, 16 }; // 测试数组
chooseSort(test1);
for (int i = 0; i < test1.length; i++) {
System.out.print(test1[i] + " ");
}
}
}
3.4.1.2 程序运行结果:
5 16 27 38 49 51 62
3.4.2 源程序揭秘
选择排序的基本思想是每一趟(假设是第i趟)处理都是从n-i+1个数据中选择一个数据最小(或最大)的作为有序序列中的第i个数据。其中最简单的一种称为直接选择排序。
选择排序算法的数据结构:
待排序的数组test1 = {51, 38, 49, 27, 62, 5, 16}
选择排序算法原理:
直接选择排序的第一趟处理是从数据序列所有n个数据中选择一个最小的数据作为有序序列中的第1个元素并将它定位在第一号存储位置,第二趟处理从数据序列的n-1个数据中选择一个第二小的元素作为有序序列中的第2个元素并将它定位在第二号存储位置,依此类推,当第n-1趟处理从数据序列的剩下的2个元素中选择一个较小的元素作为有序序列中的最后第2个元素并将它定位在倒数第二号存储位置,至此,整个的排序处理过程就已完成。
想学习Android开发跟交流的可以加306978835群
- 上一篇: 几种排序算法的原理以及 Java 实现
- 下一篇: 常用排序算法总结(常用排序算法总结)
猜你喜欢
- 2024-11-03 java桶式排序算法(桶排序代码)
- 2024-11-03 算法篇:Java实现九种排序算法1:插入排序之后直接插入排序
- 2024-11-03 十大经典排序算法最强总结(含JAVA代码实现)
- 2024-11-03 JAVA从零开始之排序算法(spicyChicken盘点)
- 2024-11-03 排序算法实现-堆排序(Java版本)(堆排序实现代码)
- 2024-11-03 JAVA十大排序算法之基数排序详解(java的排序)
- 2024-11-03 十大经典《排序算法》你还记得多少?
- 2024-11-03 Java排序算法——选择排序(java的选择排序)
- 2024-11-03 java实现10种排序算法(java十大排序算法)
- 2024-11-03 JAVA十大经典排序算法(java常见排序算法)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)