Java选择排序算法

来源:互联网 发布:新概念2和3的区别 知乎 编辑:程序博客网 时间:2024/06/14 04:48
Java常用排序算法,包括交换排序、选择排序、插入排序和合并排序。其中交换排序主要包括冒泡排序和快速排序法;选择排序主要包括选择排序法和堆排序法;插入排序主要包含插入排序法和Shell排序法。以上几种基本排序法直接对计算机内存中的数据进行排序。冒泡排序算法通过多次比较和交换实现排序,其排序流程如下:(1)对数组中的各数据,依次比较相邻两元素的大小。(2)如果前面的数据大于后面的数据,就交换两个数据。经过第一轮多次的比较厚,便可把最小的数据排好。(3)再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排好数组各数据的顺序。实现如下:   
void bubbleSort(int[]a){    int temp;    for(int i=1;i<a.length;i++){        for(j=0;j<a.length-i;j++){            if(a[j]>a[j+1]){                temp=a[j];                a[j]=a[j+1];                a[j+1]=temp;            }        }    //打印数组    for(int k=0;i<a.length;k++){        System.out.print(""+a[k]);    }}
选择排序法思路比较直观,在每一步中选取最小值重新排列,从而达到排序的目的。主要是通过选择和交换来实现排序,其流程如下:(1)首先从原始数组中选择最小的1个数据,将其和位于第一个位置的数据交换。(2)接着从剩下的n-1个数据中选择次小的一个数据,将其和第二个位置数据交换。(3)然后,这样不断重复,直到最后两个数据交换,至此完成了数据从小到大的交换。
void selectSort(int[]a){    int index;    int temp;    for(int i; i<a.length-1;i++){        index=i;        for(int j=i+1;j<a.length;j++){            if(a[j]<a[index]){                index=j;            }        }        //交换两个数        if(index!=i){            temp=a[i];            a[i]=a[index];            a[index]=temp;        }    }    //打印数组    for(int k=0;i<a.length;k++){        System.out.print(""+a[k]);    }}
原创粉丝点击