Java的常用三大排序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
s=ary[i]; for(j=i-1;j>=0;j--){
if(s>ary[j]){ ary[j+1]=ary[j];
}else{ Break;
}
} ary[j+1] = s; } return ary; }
end
插入排序
插入排序原理: ü 将数组分为两部分, 将后部分的第一个逐一与前部分每一个元素比较,在合理位置插入 ü 插入排序算法效率要高于选择排序和冒泡排序 插入排序丼例:{8 , 2 , 3 , 7 , 1}的排序过程如下所示: 第 1 步,假设第一个元素是已排序的 {8|2,3,7,1}
第 2 步,用 2 和"|"之前的所有元素比较,并插入 {8|2,3,7,1} 取出 2(temp=2) temp 和 8 比,比 8 小,将 2 的位置赋值为大数(ary[1]=8) {8|8,3,7,1} 因为已到边界,直接赋值(ary[0]=2) {2,8|3,7,1} 2 和 8 排序完成
} public static int[] bubblesort(int[] ary){
for(int i=0;i<ary.length-1;i++){ for(int j=0;j<ary.length-i-1;j++){ if(ary[j]>ary[j+1]){ int temp = ary[j]; ary[j] = ary[j+1]; ary[j+1= temp; } } } return ary; }
第 4 步,用 7 和"|"之前的所以元素比较,并插入 {2,3,8|7,1} 取出 7(temp=7) temp 和 8 比,比 8 小,7 的位置赋值给大数(ary[3]=8) {2,3,8|8,1}
temp 和 3 比,比 3 大,插入 3 后面(ary[2]=7) 7、2、3、8 排序完成
{2,3,7,8|1}
int[] ary = {8,2,3,7,1}; ary = insertsort(ary);
System.out.println()
} public static int[] insertsort(int[] arguments){
int i,j,s; for(i=1;i<ary.length;i++){
{2,3,7,8|1}
{2,3,7,8|8} {2,3,7,7|8} {2,3,3,7|8} {2,2,3,7|8}
package day01;
import java.util.Arrays;
public class InsertSort{ public static void main(String[] arguments){
}
Βιβλιοθήκη Baidu
冒泡排序:
冒泡排序原理: ü 比较相邻的元素,将小的放到前面。 达内 IT 培训集团 5 冒泡排序丼例:{8 , 2 , 3 , 7 , ary={8,2,3,7,1} ary={2,8,3,7,1} ary={2,3,8,7,1} ary={2,3,7,8,1} ary={2,3,7,1|8} ary={2,3,7,1|8} ary={2,3,7,1|8} ary={2,3,1|7,8} ary={2,3,1|7,8} ary={2,1|3,7,8} ary={1,2,3,7,8} 过程分析: ü i 代表次数 ü j 代表比较位置
1}的排序过程如下所示:
package day01;
import java.util.Arrays;
public class BubbleSort{ public static void mian(String[] arguments){
int[] ary = {8,2,3,7,1}; ary = bubblesort(ary); System.out.println(Arrays.toString(ary));
} public static int[] selectionsort(int[] ary){ for(int i=0;i<ary.length-1;i++){ for(int j=i+1;j<ary.length;j++){ int temp =ary[i]; ary[i]=ary[j]; ary[j]=temp; } } return ary; }
Java 的常用三大排序
潭州软件学院西米老师制作 649237761
1. 选择排序,冒泡排序,插入排序
选择排序
2. 选择排序原理: 3. √将数组中每个元素和第一个元素比较,如果这个元素小雨第一个元素,则交换这两个元素 4. √循环第一条规则,找出最小的元素,放于第一个位置 5. √经过 n~1 轮比较完成排序
简单而言,每轮都找到最小的放到前面。丼例:{8 , 2 , 3 , 7 , 1}的排序过程如下所示: 数组: ary={8 , 2 , 3 , 7 , 1} 第 1 轮: ary={1 | 8 , 3 , 7 , 2} 第 2 轮: ary={1 , 2 | 8 , 7 , 3} 第 3 轮: ary={1 , 2 , 3 | 8 , 7} 第 4 轮: ary={1 , 2 , 3 , 7 | 8} 第 5 轮: ary={1 , 2 , 3 , 7 | 8}
过程分析: ü i 代表第一个数据的位置 ü j 代码后部每一个数据的位置 那么选择排序代码如下: package day01;
import java.util.Arrays;
public class SelectionSort{
Public static void main(String[] arguments){ Int[] ary ={8,2,3,7,1}; ary = selectionsort(ary); System.out.println(Arrays.toString(ary));
第 5 步,用 1 和"|"之前的所以元素比较,并插入 取出 1(temp=1) temp 和 8 比,比 8 小,1 的位置赋值给大数 8 temp 和 7 比,比 7 小,8 的位置赋值给大数 7 temp 和 3 比,比 3 小,7 的位置赋值给大数 3 temp 和 2 比,比 2 小,3 的位置赋值给大数 2 到边界,赋值(ary[0]=1) {1,2,3,7,8|} 1、2、3、7、8 排序完成 过程分析: ü temp 代表取出待插入的元素 ü i 代表后组待插入元素的位置 ü j 代表前组每个元素的位置
第 3 步,用 3 和"|"之前的所有元素比较,并插入 {2,8|3,7,1} 取出 3(temp=3) temp 和 8 比,比 8 小,3 的位置赋值给大数(ary[2]=8) {2,8|8,7,1} temp 和 2 比,比 2 大,插入 2 后面 (ary[1]=3) {2,3,8|7,1} 3、2、8 排序完成
if(s>ary[j]){ ary[j+1]=ary[j];
}else{ Break;
}
} ary[j+1] = s; } return ary; }
end
插入排序
插入排序原理: ü 将数组分为两部分, 将后部分的第一个逐一与前部分每一个元素比较,在合理位置插入 ü 插入排序算法效率要高于选择排序和冒泡排序 插入排序丼例:{8 , 2 , 3 , 7 , 1}的排序过程如下所示: 第 1 步,假设第一个元素是已排序的 {8|2,3,7,1}
第 2 步,用 2 和"|"之前的所有元素比较,并插入 {8|2,3,7,1} 取出 2(temp=2) temp 和 8 比,比 8 小,将 2 的位置赋值为大数(ary[1]=8) {8|8,3,7,1} 因为已到边界,直接赋值(ary[0]=2) {2,8|3,7,1} 2 和 8 排序完成
} public static int[] bubblesort(int[] ary){
for(int i=0;i<ary.length-1;i++){ for(int j=0;j<ary.length-i-1;j++){ if(ary[j]>ary[j+1]){ int temp = ary[j]; ary[j] = ary[j+1]; ary[j+1= temp; } } } return ary; }
第 4 步,用 7 和"|"之前的所以元素比较,并插入 {2,3,8|7,1} 取出 7(temp=7) temp 和 8 比,比 8 小,7 的位置赋值给大数(ary[3]=8) {2,3,8|8,1}
temp 和 3 比,比 3 大,插入 3 后面(ary[2]=7) 7、2、3、8 排序完成
{2,3,7,8|1}
int[] ary = {8,2,3,7,1}; ary = insertsort(ary);
System.out.println()
} public static int[] insertsort(int[] arguments){
int i,j,s; for(i=1;i<ary.length;i++){
{2,3,7,8|1}
{2,3,7,8|8} {2,3,7,7|8} {2,3,3,7|8} {2,2,3,7|8}
package day01;
import java.util.Arrays;
public class InsertSort{ public static void main(String[] arguments){
}
Βιβλιοθήκη Baidu
冒泡排序:
冒泡排序原理: ü 比较相邻的元素,将小的放到前面。 达内 IT 培训集团 5 冒泡排序丼例:{8 , 2 , 3 , 7 , ary={8,2,3,7,1} ary={2,8,3,7,1} ary={2,3,8,7,1} ary={2,3,7,8,1} ary={2,3,7,1|8} ary={2,3,7,1|8} ary={2,3,7,1|8} ary={2,3,1|7,8} ary={2,3,1|7,8} ary={2,1|3,7,8} ary={1,2,3,7,8} 过程分析: ü i 代表次数 ü j 代表比较位置
1}的排序过程如下所示:
package day01;
import java.util.Arrays;
public class BubbleSort{ public static void mian(String[] arguments){
int[] ary = {8,2,3,7,1}; ary = bubblesort(ary); System.out.println(Arrays.toString(ary));
} public static int[] selectionsort(int[] ary){ for(int i=0;i<ary.length-1;i++){ for(int j=i+1;j<ary.length;j++){ int temp =ary[i]; ary[i]=ary[j]; ary[j]=temp; } } return ary; }
Java 的常用三大排序
潭州软件学院西米老师制作 649237761
1. 选择排序,冒泡排序,插入排序
选择排序
2. 选择排序原理: 3. √将数组中每个元素和第一个元素比较,如果这个元素小雨第一个元素,则交换这两个元素 4. √循环第一条规则,找出最小的元素,放于第一个位置 5. √经过 n~1 轮比较完成排序
简单而言,每轮都找到最小的放到前面。丼例:{8 , 2 , 3 , 7 , 1}的排序过程如下所示: 数组: ary={8 , 2 , 3 , 7 , 1} 第 1 轮: ary={1 | 8 , 3 , 7 , 2} 第 2 轮: ary={1 , 2 | 8 , 7 , 3} 第 3 轮: ary={1 , 2 , 3 | 8 , 7} 第 4 轮: ary={1 , 2 , 3 , 7 | 8} 第 5 轮: ary={1 , 2 , 3 , 7 | 8}
过程分析: ü i 代表第一个数据的位置 ü j 代码后部每一个数据的位置 那么选择排序代码如下: package day01;
import java.util.Arrays;
public class SelectionSort{
Public static void main(String[] arguments){ Int[] ary ={8,2,3,7,1}; ary = selectionsort(ary); System.out.println(Arrays.toString(ary));
第 5 步,用 1 和"|"之前的所以元素比较,并插入 取出 1(temp=1) temp 和 8 比,比 8 小,1 的位置赋值给大数 8 temp 和 7 比,比 7 小,8 的位置赋值给大数 7 temp 和 3 比,比 3 小,7 的位置赋值给大数 3 temp 和 2 比,比 2 小,3 的位置赋值给大数 2 到边界,赋值(ary[0]=1) {1,2,3,7,8|} 1、2、3、7、8 排序完成 过程分析: ü temp 代表取出待插入的元素 ü i 代表后组待插入元素的位置 ü j 代表前组每个元素的位置
第 3 步,用 3 和"|"之前的所有元素比较,并插入 {2,8|3,7,1} 取出 3(temp=3) temp 和 8 比,比 8 小,3 的位置赋值给大数(ary[2]=8) {2,8|8,7,1} temp 和 2 比,比 2 大,插入 2 后面 (ary[1]=3) {2,3,8|7,1} 3、2、8 排序完成