基础算法学习第二天(冒泡排序、选择排序、直接插入排序)
来源:互联网 发布:杜特软件下载 编辑:程序博客网 时间:2024/06/06 02:00
冒泡排序思想:
1.将第一个数和第二个数进行比较,将较大的数或者是较小的数向上冒泡,一直进行的不能交换为止。这里我们将比较大的数向上浮。
代码如下,已测。。。
import java.util.Scanner;import java.util.Arrays;public class BuddleSort{ public static void sorts(int[] arr,int a,int b){ int t; t=arr[a]; arr[a]=arr[b]; arr[b]=t; } public static void BuddleSorts(int[] a){ for(int i=0;i<a.length-1;i++){ boolean flag=true; for(int j=0;j<a.length-1;j++){ if(a[j]>a[j+1]){ sorts(a,j,j+1); flag=false; } } if(flag){//证明没有进行交换或者交换已经彻底完成 break; } } } public static void main(String[] args){ int a[] = {0,6,7,2,10,9,3,4,5,1,8 }; BuddleSorts(a); System.out.println(Arrays.toString(a)); }}
选择排序:
1.每一趟确定最小元素通过不断地比较交换来使得首位置为当前最小或者最大,直到元素排完。
代码如下:已测
import java.util.*;public class SelectSort{ public static void main(String[] args){ int a[] = {0,6,7,2,10,9,3,4,5,1,8 }; selectSort(a); System.out.println(Arrays.toString(a)); } public static void swwap(int[] a,int i,int j){ int t; t=a[i]; a[i]=a[j]; a[j]=t; } public static void selectSort(int[] a){ int len=a.length-1; for(int i=0;i<len;i++){ int min=i;//先将首位设置为最小坐标 for(int j=i+1;j<len+1;j++){ if(a[j]<a[min]) min=j; //比较之后将小的数的下标设为min放到首位; } if(min!=i)//进行交换 swwap(a,min,i); } }}
直接插入排序
1.每次将要插入的数插入到前面已经排好序的队列中,直到插完所有的元素为止。
2.如何让前面的队列称为有序的?让插入的元素和依次和之前的元素比较, 小就往前走。
代码如下:已测
import java.util.*;public class InsertSort{ public static void main(String[] args){ int a[] = {0,6,7,2,10,9,3,4,5,1,8 }; insertSort(a); System.out.println(Arrays.toString(a)); } public static void swwap(int[] a,int i,int j){ int t=a[i]; a[i]=a[j]; a[j]=t; } public static void insertSort(int[] a){ for(int i=0;i<a.length;i++){ int j=i; while(j>0&&a[j]<a[j-1]){ swwap(a,j,j-1); j--; } } }}
阅读全文
0 0
- 基础算法学习第二天(冒泡排序、选择排序、直接插入排序)
- 排序算法---基础算法(冒泡排序,快速排序,选择排序,直接插入排序,桶排序)
- 基础排序算法(冒泡排序、选择排序、插入排序)
- 排序算法(1):冒泡、选择、直接插入排序
- java实现各种基础排序(冒泡排序、快速排序、直接选择排序、堆排序、直接插入排序、归并排序)
- 排序算法(快速排序、直接插入排序、直接选择、冒泡排序)
- 直接插入排序,选择排序,冒泡排序
- 选择排序、冒泡排序、直接插入排序
- Java基础篇之----排序(快速排序、冒泡排序、堆排序、简单选择排序、 希尔排序、直接插入排序)
- 排序算法实例(冒泡法排序、选择法排序、直接插入排序 、希尔法排序、折半插入排序)
- 排序算法汇总(选择排序 ,直接插入排序,冒泡排序,希尔排序,快速排序,堆排序)
- 排序算法汇总(选择排序 ,直接插入排序,冒泡排序,希尔排序,快速排序,堆排序)
- 排序学习(直接插入排序,折半插入排序,冒泡排序,快速排序,简单选择排序)
- 排序算法之冒泡排序、选择排序、直接插入排序(java实现)
- 学习笔记第二节:冒泡排序+选择排序+插入排序
- 排序算法汇总(选择排序 ,直接插入排序,冒泡排序,希尔排序,快速排序...)
- 冒泡排序、选择排序、直接插入排序(java实现)
- 基础排序总结(冒泡排序、选择排序、插入排序)
- 超大数据快速导入MySQL
- 记Redis那坑人的HGETALL
- json基础
- GitHub使用教程(一)
- 立方尾不变
- 基础算法学习第二天(冒泡排序、选择排序、直接插入排序)
- 邻接链表实现的无向图
- css样式来源于层叠规则
- 一个值得借鉴的插件写法
- TensorFlow入门(九)使用 tf.train.Saver()保存模型
- 如何利用PHPExcel实现数据导出成excel文件
- sklearn中的交叉验证和数据划分
- null id in entry (don't flush the Session after an exception occurs)的错误
- 实验楼课程列表