1、冒泡排序
基本原理:定义一个有n个元素的数组序列,从第一个元素开始依次比较相邻两个元素的大小;当下一个元素的值大于前一个元素的值时,将两个元素的位置进行调换;然后再和下一个元素进行比较,并且交换位置;一直重复该过程直到比较的结果是剩下一个元素位置;其中n个元素中最大的元素值最后交换到最后一位,也就是第n位。
代码示例:
package paixu;
public class BubbleSort {
public static void main(String[] args) {
int[] array = {12,32,25,46,56,32,11,78,40,98,64};
int temp; //定义一个中间遍历
for(int i=0;i<array.length;++i){ //首先遍历数组
for(int j=array.length-1;j>i;--j){ //对数组进行内层循环
if(array[j]<array[j-1]){ //判断当前数组元素和上一个数组元素的大小,如果当前数小于抢一个数,则进行调换换位置
temp=array[j]; //采用第三变量进行数组元素的位置调换
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
//输出遍历已经排序好之后的数组
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
}
输出结果:11 12 25 32 32 40 46 56 64 78 98
2、插入排序,
基本原理:定义一个有n个元素的数组序列,初始时假设第一个元素自成一个有序的序列,其余记录为无序序列;接着从第二个元素开始,按照元素大小依次将当前处理的元素插入到其之前的有序序列中,直至最后一个记录插入到有序序列中为止。
代码示例:
package paixu;
public class InsertsSort {
public static void main(String[] args){
int[] array = {7,3,19,6,30,7,20};
if(array!=null){ //判断数组是否为空
for(int i=1;i<array.length;i++){ //遍历数组
int temp=array[i]; //定义第三变量temp
int j=i;
if(array[j-1]>array[j]){ //判断当前数组元素和上一个数组元素的大小,如果当前数小于前一个数,则进行调换换位置
while(j>=1&&array[j-1]>array[j]){
temp=array[j]; //采用第三变量进行数组元素的位置调换
array[j]=array[j-1];
array[j-1]=temp;
j--;
}
}else{
array[j]=temp; //如果当前数大于前一个数,则位置不变
}
}
for(int i=0;i<array.length;i++){ //遍历已经排序完成的数组序列,并上输出该数组序列
System.out.print(array[i]+" ");
}
}
}
}
输出结果:3 6 7 7 19 20 30
3、选择排序
基本思想:定义一个有n个元素的数组序列,首先对数组序列中的元素进行比较,得出最小的数组元素,并将该元素和数组第一个元素的位置进行交换;然后将不包括数组第一个元素以外 的元素进行第二轮的比较,得出第二轮比较出的最小值,将第二轮的最小值和数组元素的第二个元素位置进行交换;不断的重复该过程,直到进行比较的记录只有一个时为止。
代码示例:
package paixu;
public class SelectSort1 {
public static void main(String[] args) {
int[] array = {1,6,2,8,0,4,9,6,3,7}; //定义数组
int min = 0;
int temp = 0;
for(int i=0;i<array.length;i++){ //遍历数组
min = i;
for(int j=i+1;j<array.length;j++){
if(array[min]>array[j]) //判断所取的最小数和当前数的大小
min = j; //记下较大数位置,再次比较,直到最大
}
/***如果第 i数的位置不在 i,则交换****/
if(i!=min){
temp = array[i];
array[i] = array[min];
array[min] = temp;
}
}
for(int i=0;i<array.length;i++){ //遍历已经排序的数组,并输出
System.out.print(array[i]+" ");
}
}
}
输出结果:0 1 2 3 4 6 6 7 8 9