java实现最基本的几种排序算法(冒泡,选择,插入)
来源:互联网 发布:超图软件股票最新消息 编辑:程序博客网 时间:2024/05/29 16:47
java中常用的几种排序算法
public class Sort { //冒泡排序/** * 核心思想: * 比较两个元素,如果前一个元素比后一个元素大则进行交换,经过对每个元素的 * 比较,最后将大的元素设置成最后一个元素。重复该动作,最后形成从小到大的排序。 * @param arr */ public static void bubbleSort(long arr[]) { int i; long temp; //减去1是因为如果长度为7,则只需要循环6次就行了,前六次已经把排好 for(i=0;i<arr.length-1;i++) {//减去i是因为冒泡排序每次都把最大的排到最后,外层循环到第几次,就有排好的几个,所以要减去最后 //把前面开始进行冒泡排好 for(int j=0;j<arr.length-i-1;j++) {//互换 if(arr[j]>arr[j+1]) { temp = arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } //升级的冒泡排序 public static void BubbleSort(long arr[]) { int i,flag; long temp; flag = 1;//flag:1表示排序没有结束,0表示排序已经结束 for(i=0;i<(arr.length-1)&&(flag==1);i++) { for(int j=0;j<arr.length-i-1;j++) { flag = 0;//如果以后的循环不改变flag的值,说明没有发生数组元素的交换 //也就是说,这个数组已经排好序了。所有就可以提前退出循环。 if(arr[j]>arr[j+1]) { flag = 1; temp = arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } //选择排序 /** * 扫描所有的元素,得到最小的元素,并将最小的元素与最左边的第一个元素进行交换。 * 再次扫描除第一位的所有元素,得到最小的元素,与左边第二个元素进行交换,以此类推 * @param arr */public static void selectSort(long arr[]){ long temp=0;;int min=0;for(int i=0;i<arr.length-1;i++){//默认第一个数据最小min=i;for(int j=i+1;j<arr.length;j++){if(arr[j]<arr[min]){min=j;}}temp = arr[i];arr[i] = arr[min];arr[min] = temp;}}//插入排序/** * 抽出一个元素,在其前面找到合适的位置进行插入 * @param arr */public static void insertSort(long arr[]){long select = 0;for(int i=1;i<arr.length;i++){//默认抽出的那个是第二个元素select = arr[i];int j = 0;//(arr[j-1]>select)这个是只要跟前面的那个一对比,如果发现了比前面的小,就继续往前推for(j=i;j>0&&(arr[j-1]>select);j--){arr[j] = arr[j-1];}arr[j] = select;}}}
0 0
- java实现最基本的几种排序算法(冒泡,选择,插入)
- 001-简单的java代码实现几种排序算法(插入,快速,冒泡,选择)
- 几种基本的排序算法:选择排序、插入排序、冒泡排序
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 面试最基本的三种排序算法 冒泡排序 插入排序 选择排序
- java几种基本的排序方法,快速排序,冒泡排序,选择排序,插入排序
- PHP实现几种基本排序算法--冒泡排序法,快速排序法,选择排序法,插入排序法
- 几种基本排序的实现:选择排序,冒泡排序,插入排序,堆排序,快速排序,归并排序
- 几种常见排序算法的实现(冒泡法,选择法,插入法,快速排序、堆排序)
- 关于几种简单的排序算法-插入、冒泡、选择
- 基本排序算法(冒泡、选择、插入)
- java实现冒泡、选择、插入排序算法
- 几种排序算法(冒泡排序算法,选择排序算法,快速排序算法,插入排序)
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- 几种排序算法总结(冒泡、选择、插入、快速)
- 冒泡排序、选择排序、插入排序、快速排序算法的时间性能分析(java实现)
- java常用的几种排序(冒泡排序 选择 插入排序 /快速排序)
- java 几种简单的排序(插入排序,冒泡排序,选择排序)
- VIPER模式介绍
- bootstrap-datetimepicker 汉化
- 强制消除Xcode警告的方法
- Android不同应用间的活动和服务的数据同步
- SQLite3中的数据类型
- java实现最基本的几种排序算法(冒泡,选择,插入)
- 关于iOS7里的JavaScriptCore framework
- React 入门实例教程
- 深入浅出Fetch API
- iOS AutoLayout (NSLayoutConstraint + Masonry)
- OC语法简化
- Podfile语法
- 获取本地沙盒文件的MIMEType
- hdu2053 Switch Game