本文主要阐述了四种排序方法
2017-08-02 14:16
204 查看
本文主要阐述了四种排序方法
冒泡、插入、选择、快排
1. 冒泡
int [] arrs ={9,8,7,6,5}; //第一层for循环是指有几个数去比较 for (int i=0;i<arrs.length-1;i++) { int temp = 0; //第二层for循环是指每个数比多少次 for(int j=0;j<arrs.length-1-i;j++){ //拿这个数和下一个进行相比,比它大/小进行交换 if(arrs[j]>arrs[j+1]){ temp=arrs[j]; arrs[j]=arrs[j+1]; arrs[j+1]=temp; } } }
2. 选择
int[] arrs = {5,6,3,2,1,4}; for (int i = 0; i < arrs.length; i++) { int temp=i; for (int j = i+1; j < arrs.length; j++) { if(arrs[temp]<arrs[j]){ //注意并没有交换!!!仅换下标!!! temp=j; } } int c=arrs[i]; arrs[i]=arrs[temp]; arrs[temp]=c; } System.out.printLn(Array.toString(arrs)); //第一次从arrs[0]~arrs[n-1]中选取最小值,与arrs[0]交换 //第二次从arrs[1]~arrs[n-1]中选取最小值,与arrs[1]交换 //第一个数与之后的数比较,temp值一直变 记录最小数的标,再交换
3. 插入
int [] arrs = {20,65,445,7,4,3,22,567}; for (int i = 1; i < arrs.length; i++) { //拿出前面一个人 int pos = i-1; //记录空位置 //后面的同学要插入 int temp = arrs[i]; //‘1’位置代表的数字,赋值给temp //一轮:pos=0 i=1 二轮:pos=1 i=2 arrs[i]=0; //比较到前面1个人比temp矮或者比较到0 while(pos>=0 && arrs[pos] >= temp){ arrs[pos+1]=arrs[pos]; pos--; } arrs[pos+1]=temp; } //第二个数字也就是“1” 根它前面的数字对比,如果1的数字比前面0的数字小,则前面0的数换到1上 反之则不换
4. 快排
private void quick (int low,int high){ int lo = low,hi =high; if(lo>=hi){ return; } boolean flag = false; while(lo<hi){ if(menus.get(lo).getId()<menus.get(hi).getId()){ Menus temp = menus.get(lo); menus.set(lo,menus.get(hi)); menus.set(hi,temp); flag=!flag; } if(flag) lo++; else hi--; } lo--;hi++; quick(low,lo); quick(hi,high); }
相关文章推荐
- JAVA中运用数组的四种排序方法
- PHP常用的四种排序方法及二种查找方法
- PHP的四种基本排序方法
- 算法方法JAVA中运用数组的四种排序方法
- JAVA四种基本排序方法实例总结
- Java四种排序方法及99乘法口诀表
- PHP四种排序方法
- JAVA中运用数组的四种排序方法
- JAVA中运用数组的四种排序方法
- Java中运用数组的四种排序方法
- Java中运用数组的四种排序方法
- 本文整理了四种在MySQL中修改root密码的方法
- JAVA中运用数组的四种排序方法
- 四种数组排序方法 20170801
- 直接插入排序的四种实现方法
- Java中运用数组的四种排序方法
- c语言种必须掌握的四种排序方法
- JAVA中运用数组的四种排序方法
- Java 数组的四种排序方法 代码
- Java中运用数组的四种排序方法