查看: 107|回复: 0

扣丁学堂简述常用Java排序算法有哪些

发表于 2018-6-5 13:11:50


在本篇文章开始之前先问大家一个问题,小伙伴们对Java排序算法有多少的了解呢?常用的Java排序算法有几种又有多少小伙伴知道呢?本篇文章扣丁学堂Java在线学习小编就给大家分享一下常用的Java排序算法,希望对Java感兴趣的小伙伴仔细阅读。


本文主要介绍Java的七种常见排序算法的实现,对选择排序、插入排序、冒泡排序、归并排序、快速排序、希尔排序、最小堆排序进行原理分析与实例介绍,下面一起来看一下吧:
一、选择排序(SelectSort)
基本原理:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二次比较,得到最小的记录并与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个为止。
public class SelectSort {
public static void selectSort(int[] array) {
int i;
int j;
int temp;
int flag;
for (i = 0; i < array.length; i++) {
temp = array;
flag = i;
for (j = i + 1; j < array.length; j++) {
if (array[j] < temp) {
  temp = array[j];
  flag = j;
}
}
if (flag != i) {
array[flag] = array;
array = temp;
}
}
}
public static void main(String[] args) {
int[] a = { 5, 1, 9, 6, 7, 2, 8, 4, 3 };
selectSort(a);
for (int i = 0; i < a.length; i++) {
System.out.print(a + " ");
}
}
}
二、插入排序(InsertSort)
基本原理:对于给定的一组数据,初始时假设第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有序序列中为止。
public class InsertSort {
public static void insertSort(int[] a) {
if (a != null) {
for (int i = 1; i < a.length; i++) {
int temp = a;
int j = i;
if (a[j - 1] > temp) {
  while (j >= 1 && a[j - 1] > temp) {
  a[j] = a[j - 1];
  j--;
  }
}
a[j] = temp;
}
}
}
public static void main(String[] args) {
int[] a = { 5, 1, 7, 2, 8, 4, 3, 9, 6 };
// int[] a =null;
insertSort(a);
for (int i = 0; i < a.length; i++) {
System.out.print(a + " ");
}
}
}
以上就是小编给大家分享的常用的Java排序算法详解,想要了解更多内容的小伙伴可以登录扣丁学堂官网查看更多内容。扣丁学堂是专业的Java培训机构,不仅有专业的老师和与时俱进的课程体系,还有大量的Java在线视频供学员观看学习哦。


文章转载自:扣丁学堂http://www.codingke.com/


回复

使用道具 举报