java排序算法 - 大海的专栏 - CSDNBlog
来源:百度文库 编辑:神马文学网 时间:2024/04/20 16:55:30
java排序算法
排序是CODE经常会用到的,在此做一个用JAVA实现的排序算法以供以后忘了的时候有备参考!
首先,在排序过程中,经常会对数组中两个元素进行交换,以下是交换算法:
public static void swap(int[] array, int i, int j) ...{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
1 选择排序
选择排序其实在前面已经有一篇文章说明了,不过为了此处能讲全排序算法,再次提及.
选择排序在任何情况下都是O(n2)
public String[] selectionSort(int[] arrayA)...{
for (int i = 0; i < arrayA.length - 1; i++) ...{
int minIndex = i;
// Find smallest value
for (int j = i + 1; j < arrayA.length; j++) ...{
int e1 = arrayA[j];
int e2 = arrayA[minIndex];
// Compare two value
if (e1 minIndex = j;
}
}
// Swap value if necessary
if (minIndex != i)...{
swap(arrayA,minIndex,j);
}
}
return arrayA;
}
2 冒泡排序
对于平均情况,冒泡排序的性能是O(n2)
public static void bubbleSort(int[] array...{
for(int i=0;i boolean swapped=false;
for(int j=0;j if(array[j]>array[j+1])...{
swap(array,i,j+1);
swapped=tree;
}
}
if(!swapped)...{
return;
}
}
}
3 插入排序
插入排序的最差情况性能是O(n2)
public static void insertionSort(int[] array)...{
for(int i=1;i int itemToInsert=array[i];
int j=i-1;
while(j>=0)...{
if(itemToInsert array[j+1]=array[j];
j--;
}
else...{
break;
}
}
array[j+1]=itemToInsert;
}
}
OK,就到这里了,这是常用的也是数据结构上的三种排序算法,喝杯咖啡去
排序是CODE经常会用到的,在此做一个用JAVA实现的排序算法以供以后忘了的时候有备参考!
首先,在排序过程中,经常会对数组中两个元素进行交换,以下是交换算法:
public static void swap(int[] array, int i, int j) ...{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
1 选择排序
选择排序其实在前面已经有一篇文章说明了,不过为了此处能讲全排序算法,再次提及.
选择排序在任何情况下都是O(n2)
public String[] selectionSort(int[] arrayA)...{
for (int i = 0; i < arrayA.length - 1; i++) ...{
int minIndex = i;
// Find smallest value
for (int j = i + 1; j < arrayA.length; j++) ...{
int e1 = arrayA[j];
int e2 = arrayA[minIndex];
// Compare two value
if (e1
}
}
// Swap value if necessary
if (minIndex != i)...{
swap(arrayA,minIndex,j);
}
}
return arrayA;
}
2 冒泡排序
对于平均情况,冒泡排序的性能是O(n2)
public static void bubbleSort(int[] array...{
for(int i=0;i
for(int j=0;j
swap(array,i,j+1);
swapped=tree;
}
}
if(!swapped)...{
return;
}
}
}
3 插入排序
插入排序的最差情况性能是O(n2)
public static void insertionSort(int[] array)...{
for(int i=1;i
int j=i-1;
while(j>=0)...{
if(itemToInsert
j--;
}
else...{
break;
}
}
array[j+1]=itemToInsert;
}
}
OK,就到这里了,这是常用的也是数据结构上的三种排序算法,喝杯咖啡去
java排序算法 - 大海的专栏 - CSDNBlog
排序算法小结 - ilibaba的专栏 - CSDNBlog
一个Dijkstra算法的完整Java程序实现,算法初学者必看! - brokencar的专栏 - CSDNBlog
各种排序算法java实现
用Java实现几种常见的排序算法
采用部分快速排序算法实现数组的部分排序 - eaglet的专栏 - CSDN博客
学习Java的30个基本概念 - 刀目村的专栏 - CSDNBlog
常见的排序算法
常用的排序算法
java正则表达式入门文档 - lenhan12345的专栏 - CSDNBlog
如何迅速成为Java高手 - paulfong的专栏 - CSDNBlog
Java学习总论(转) - popkiler的专栏 - CSDNBlog
Java 设计模式:代理模式Proxy - hsyj_0001的专栏 - CSDNBlog
Java程序员面试宝典 - 飞鸟的专栏 - CSDNBlog
java clone方法使用详解 - ilibaba的专栏 - CSDNBlog
Effective Java 笔记(二) - ilibaba的专栏 - CSDNBlog
Effective Java 笔记(五) - ilibaba的专栏 - CSDNBlog
Effective Java 笔记(六) - ilibaba的专栏 - CSDNBlog
Effective Java 笔记(七) - ilibaba的专栏 - CSDNBlog
Java 设计模式:代理模式Proxy - hsyj_0001的专栏 - CSDNBlog
解决Java Applet和Java Script通信问题 - complayer的专栏 - CSDNBlog
贪心算法在背包背包问题中应用的探讨1 - shaopengfei的专栏 - CSDNBlog
各种排序算法的比较
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。