1.冒泡排序
冒泡排序实现原理:
首先得到一个已知数组 int[[] arr = {2,3,8,1,6};实现冒泡排序就是第i位和第i+1位进行比较,如果左边比右边大则将把这两个值进行交换。例如 2和3比较,不用交换,8和1比较则需要交换。交换之后8又和6比较,还是交换,最后得到23168的数组序列,发现最大值已经排到了数组的末尾。这就是冒泡排序。
图解如下
原数组序列:2,3,8,1,6
第一轮比较 2,3,1,6,8
第二轮比较 2,1,3,6,8
第三轮比较1,2,3,6,8
代码实现
static void Sort(int[] arr){
for(int i=0;i<arr.length,i++){
for(int j=i;i<arr.length-1-i,j++){
if(arr[j]>arr[j+1]){
int tmp = arr[j+1];
arr[j+1]=arr[j];
arr[j]=tmp;
}
}
}
}
2.插入排序
static void insertSort(int[] arr){
for(int i=0;i<arr.length;i++){
for(int j=i;j<arr.length-1;j--){
if(arr[j]<arr[j-1]){
int tmp=arr[j-1];
arr[j-1]=arr[j];
arr[j]=tmp;
}
}
}
}
3.选择排序。
原理:在数组序列中找到数组里最小的数,并把它放到数组前面。
代码实现
static void selectSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
int flag=i;
for(int j=i+1;j<arr.length;j++){
if(arr[j]<arr[flag]){
flag=j;
}
}
int tmp=arr[flag];
arr[flag]=arr[i];
arr[i]=tmp;
}
}