Java排序算法
来源:互联网 发布:网络群发器 编辑:程序博客网 时间:2024/06/07 14:30
1.选择排序
简单选择排序的基本思想:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录的位置与第一个记录的位置交换;接着对不包括第一个记录以外的其他记录进行第二次比较,得到最小记录并与第二个位置记录交换;重复该过程,知道进行比较的记录只剩下一个为止。
public class selectionSort { public static void main(String[] args) { int[]arr= {10,14,9,5,16,7}; System.out.println("排序之前的数:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } System.out.println(); select(arr); } public static void select(int[] arr) { for (int i = 0; i < arr.length; i++) { int k=i; for (int j = i + 1; j < arr.length; j++) {//选最小的 if (arr[k] > arr[j]) { k=j;//记录最小的位置 } } int temp = arr[i];//交换 arr[i] = arr[k]; arr[k] = temp; } System.out.println("排序过后的数:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } }}
2.插入排序
插入排序的基本思想:对于给定的一个数组,初始时假设第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有序序列中为止。
public class insertSort { public static void insertSort(int []a) { int temp = 0; for (int i = 1; i < a.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入 int j; temp = a[i];// 设置数组中的第2个元素为第一次循环要插入的数据 for ( j=i-1; j >= 0 && temp < a[j]; j--) { a[j + 1] = a[j]; // 将大于temp的值整体后移一个单位 } a[j + 1] = temp;// 直到要插入的元素不小于第j个元素 } } public static void main(String[] args) { int a[] = { 38,65,97,76,13,27,49 }; insertSort(a); for (int i = 0; i < a.length; i++) { System.out.print(a[i]+" "); } }}
3.冒泡排序
冒泡排序的基本思想:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。
冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。
public class bubbleSort{public static void main(String[]args){ int a[]={49,38,65,97,76}; int temp=0; for(int i=0;i<a.length-1;i++){ for(int j=0;j<a.length-1-i;j++){ if(a[j]>a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } for(int i=0;i<a.length;i++) System.out.print(a[i]+" "); } }
阅读全文
0 0
- Java排序算法: 冒泡排序
- Java排序算法 快速排序
- Java排序算法 堆排序
- Java排序算法 归并排序
- Java排序算法 希尔排序
- 算法:排序----Java快速排序
- 排序算法-冒泡排序 java
- 排序算法-选择排序 java
- 算法:排序----Java选择排序
- java排序算法---归并排序
- Java排序算法:堆排序
- Java排序算法:归并排序
- Java排序算法:快速排序
- java 排序算法---插入排序
- java 排序算法-选择排序
- java 排序算法--冒泡排序
- Java排序算法:快速排序
- Java排序算法:插入排序
- .NET Core 2.0迁移技巧之web.config配置文件
- MFC中绘制动态曲线
- MyBatis框架解决字段名与实体类属性名不一致的情况
- java代码重构总结1
- [bzoj2818]Gcd 欧拉函数
- Java排序算法
- JasperReport| JasperReport Studio操作(中)
- (转)gzip文件格式详解
- 古文觀止卷八_与陳給事书_韓愈
- LeetCode 169. Majority Element(Python)
- 函数指针
- Unity入门操作_ 摄影机_019
- 我与spring的第一次约会
- 阿里秋招编程题