【算法初探|八大经典排序算法(java)】
文章图片
package com.算法.排序;
public class 冒泡排序 {
// 时间复杂度 :O(n2);
public static void main(String[] args){
int[] array = new int[100000];
for(int i=0;
iarray[j+1]){
flag=true;
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
if(!flag){
break;
}else{
flag=false;
}
}
return array;
}
}
package com.算法.排序;
public class 选择排序 {
//时间复杂度:O(n2)
public static void main(String[] args){
int[] array = new int[100000];
for(int i=0;
iarray[j]){
min=array[j];
index=j;
}
}
if(i!=index){
array[index] = array[i];
array[i] = min;
}
}
return array;
}
}
package com.算法.排序;
public class 插入排序 {
//时间复杂度:O(n2);
public static void main(String[] args) {
int[] array = new int[100000];
for(int i=0;
i=0&&data
package com.算法.排序;
public class 希尔排序 {
//希尔排序的时间复杂度依赖于增量序列的选择,理论分析比较复杂.有实验结果表明,当n较大时,时间复杂度大约在O(n1.25)到O(n1.36)之间.
public static void main(String[] args){
int[] array = new int[100000];
for(int i=0;
i0;
i/=2){ //将数据分为i组
for(int j=i;
j=0&&value
package com.算法.排序;
public class 快速排序 {
//时间复杂度O(nlogn)
public static void main(String[] args) {
int[] array = new int[100000];
for(int i=0;
i=temp){
j--;
}
while(ihead) array=sort05(array,head,i-1);
if(j+1
package com.算法.排序;
public class 归并排序 {
//时间复杂度:O(nlogn)
public static void main(String[] args) {
int[] array = new int[100000];
for(int i=0;
i
package com.算法.排序;
public class 基数排序 {
//时间复杂度:O(n*k)
public static void main(String[] args) {
int[] array = new int[100000];
for(int i=0;
i
package com.算法.排序;
public class 堆排序 {
//时间复杂度O(nlogn)
public static void main(String[] args){
int[] arr =new int[100000];
for(int i=0;
i=0;
i--){ //以i为节点向下调整
heapsort(arr,i,len);
}
//System.out.print(arr[0]+" ");
swap(arr,0,len-1);
}
long t2 = System.currentTimeMillis();
System.out.println("堆排序算法耗费"+(t2-t1)+"毫秒");
}
public static void heapsort(int[] arr,int x,int len){ //在arr数组中以x为父节点向下调整
int temp ;
boolean flag = false ;
int i =x;
while((i*2+1)
推荐阅读
- 排序算法|Java实现十大经典排序算法--上
- 数据结构|八大经典排序算法
- java|大厂员工被裁后的不同反应,也太真实了吧(|漫画)
- 人工智能|那些离开大厂,回归学术界的科学家们!
- 面试|三流面试聊技术,二流面试聊框架,一流面试…
- JAVA人生|应届生进了阿里核心BU,工作一周后,特别后悔
- JAVA人生|被阿里 P10 面试了,评价(有点水平)
- java|非计科,大专生进阿里得有多难()
- Java|愤世嫉俗的程序员,总在网上发表言论,当起了“键盘侠”