算法分析-选择排序(直接选择排序 & 堆排序)

来源:互联网 发布:windows窗口 编辑:程序博客网 时间:2024/05/02 20:24

选择排序

1.直接选择排序

原理:将序列划分为无序和有序区,寻找无序区中的最小值和无序区的首元素交换,有序区扩大一个,循环最终完成全部排序。

/*选择排序*/public static void select(){int[] b={26,37,8,59,10,61,32,13,54,15};print(b);System.out.println();int i;int j;for(i=0;i<b.length-1;i++){int min=i+1;int temp;//找到从 i~length中最小值得位置for(j=i+1;j<b.length;j++){  if(b[j]<b[min]){min=j;}}System.out.println("最小值:"+b[min]);//最小值和第一个位置的数 交换temp=b[min];b[min]=b[i];b[i]=temp;}print(b);}

【结果:】

26 37 8 59 10 61 32 13 54 15

最小值:8

最小值:10

最小值:13

最小值:15

最小值:26

最小值:32

最小值:37

最小值:54

最小值:59

8 10 13 15 26 32 37 54 59 61

2.堆排序

原理:利用大根堆或小根堆思想,首先建立堆,然后将堆首与堆尾交换,堆尾之后为有序区。

要点:建堆、交换、调整堆

 

 

0 0
原创粉丝点击