java中经典算法代码整理

简介: java中经典算法代码整理

一、选择排序法

复制代码
public static void selectSort(int[] a){
int minIndex = 0;
int temp = 0;
if(a == null)||(a.length == 0){
return;
}
for(i = 0; i < a.length-1; i++){
minIndex = i;
for(j = i+1; j < a.length; j++){
if(a[j] < a[minIndex]){
minIndex = j;
}
}
if(minIndex != i){ //如果a[i]不是最小值,则将最小值放在a[i]位置
temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
}
//代码效果参考:http://0791zd.com/bx/art_493.html

二、冒泡排序法
public static void BubbleSort(int[] a){
for(i = 0; i < a.length; i++){
for(j = 1; j < a.length-i; j++){
if(a[i] < a[j]){
temp = a[i];
a[i] = a[j];
a[j] = temp;
三、快速排序法
public class QuickSort{
public void quickSort(int[] arr, low, high){
if(low < high){
int privotpos = partition(arr, low, high);
quickSort(arr,low,privotpos-1);
quickSort(arr,privotpos+1, high);
public int partition(int[] arr, low, high){
int privot = arr[low];
while(low < high){
while(low < high %& arr[low] <= privot) ++low;
pritition = arr[low];
while(low < high %& arr[high] >= privot) --high;
privot = arr[high];
a[low] = privot;
//代码效果参考:http://0791zd.com/zx/art_1060.html

四、二分查找法
public int binarySearch(int arr[], int key){
int low = 0, high = arr.length, mid;
while(low <= high){
mid = (low + high) / 2;
if(key == arr[mid]){
return mid;
}else if(key < arr[mid]){
high = mid - 1;
}else{
low = mid + 1;
return -1;

相关文章
|
5天前
|
Java 程序员 API
Java中的Lambda表达式:简化你的代码
【7月更文挑战第10天】Lambda表达式,这一Java 8的闪亮特性,为开发者提供了一种更为简洁、灵活的编程方式。本文将探讨Lambda表达式如何优化代码结构,提升开发效率,以及在实际项目中应用的一些实例。我们将从基础语法入手,逐步深入到高级用法,最后讨论其性能影响,旨在帮助读者全面理解并有效利用Lambda表达式。
31 20
|
6天前
|
缓存 算法 安全
Java中的数据结构与算法优化策略
Java中的数据结构与算法优化策略
|
4天前
|
算法 Java
Java面试题:解释垃圾回收中的标记-清除、复制、标记-压缩算法的工作原理
Java面试题:解释垃圾回收中的标记-清除、复制、标记-压缩算法的工作原理
13 1
|
6天前
|
监控 Java Maven
使用AspectJ实现Java代码的运行时织入
使用AspectJ实现Java代码的运行时织入
|
6天前
|
缓存 算法 NoSQL
Java中的分布式缓存与一致性哈希算法
Java中的分布式缓存与一致性哈希算法
|
6天前
|
存储 算法 大数据
Python算法高手的必修课:深入理解分治法、贪心算法、动态规划,让你的代码更智能!
【7月更文挑战第9天】在Python算法学习中,分治法(如归并排序)将大问题分解为小部分递归解决;贪心算法(如货币找零)在每步选择局部最优解尝试达到全局最优;动态规划(如斐波那契数列)通过存储子问题解避免重复计算,解决重叠子问题。掌握这三种方法能提升代码效率,解决复杂问题。
|
3天前
|
存储 算法 Java
分布式自增ID算法---雪花算法(SnowFlake)Java实现
分布式自增ID算法---雪花算法(SnowFlake)Java实现
|
4天前
|
Java 编译器 API
Java中的Lambda表达式:简化代码,提升性能
在Java 8中,Lambda表达式的引入为开发者提供了一种更加简洁、灵活的编程方式。本文将深入探讨Lambda表达式的概念、语法、使用场景及其在Java中的应用示例,帮助读者更好地理解和掌握这一强大工具,从而优化代码结构,提高开发效率。
|
4天前
|
算法 Java 程序员
Java面试题:解释Java的垃圾回收机制,包括常见的垃圾回收算法。介绍一下Java的垃圾回收算法中的标记-压缩算法。
Java面试题:解释Java的垃圾回收机制,包括常见的垃圾回收算法。介绍一下Java的垃圾回收算法中的标记-压缩算法。
8 0
|
5天前
|
算法 Java 开发者
Java面试题:Java内存探秘与多线程并发实战,Java内存模型及分区:理解Java堆、栈、方法区等内存区域的作用,垃圾收集机制:掌握常见的垃圾收集算法及其优缺点
Java面试题:Java内存探秘与多线程并发实战,Java内存模型及分区:理解Java堆、栈、方法区等内存区域的作用,垃圾收集机制:掌握常见的垃圾收集算法及其优缺点
8 0