选择排序复习
来源:互联网 发布:feynman 知乎 编辑:程序博客网 时间:2024/05/20 14:24
第几次循环 比较次数 1 4 2 3 3 2 4 1(第一个和第二个比)上篇复习了冒泡,这篇来分析选择排序。
选择排序是第一回是第一个数和后面的比,第二轮是第二个数和后面的比,以此类推。这样比出来,第一个比较的数要么是最大的,要么是最小的。
还是5个数
1 2 3 4 5
此时循环代码如下,5个数,循环4次,比较次数为5-第几次循环数
这次是用第一个数组元素下标为0的数开始与后面的数比,所以我们从0开始循环,一会不用更多变量元素来比较
我们发现,在循环过程中,从第一个数往后依次判断出是最大或最小值,循环过程如下
1: for(int i=0;i<arr.length-1;i++){//循环轮次
2: for(int j=i+1;j<arr.length;j++){//循环比较次数
3: if(arr[i]>arr[j]){
4: temp=arr[i];//依次是arr[i]和arr[i+1],arr[i+2],arr[i+3]…来比较
5: arr[i]=arr[j];
6: arr[j]=temp;
7: }
8: }
9: }
外层也可以从1开始循环,但我们要i这个元素来比较。
整体代码如下:
1: public class Arrysort2 {
2: public static void main(String[] args){
3: int arr[]={56,89,42,54,16,92,76,24,61};
4: int temp=0;
5: for(int i=0;i<arr.length-1;i++){//循环轮次
6: for(int j=i+1;j<arr.length;j++){//循环比较次数
7: if(arr[i]>arr[j]){
8: temp=arr[i];
9: arr[i]=arr[j];
10: arr[j]=temp;
11: }
12: }
13: }
14:
15: System.out.print("数组中数字从小到大依次为:");
16: for(int i=0;i<arr.length;i++){
17: System.out.print(arr[i]+" ");
18: }
19: }
20: }
0 0
- 复习之选择排序
- 算法复习--选择排序
- 选择排序复习
- 数据结构复习-选择排序
- 复习排序-简单选择排序
- 算法复习之选择排序
- 算法复习之选择排序
- 复习数据结构之选择排序
- 排序算法复习(2)-- 选择排序
- 复习数据结构:排序(三)——选择排序
- C++复习之简单选择排序&归并排序
- 排序算法复习——选择类排序
- 选择排序法(Selection Sort) 复习--附图示说明
- (2)Java复习冒泡,选择,插入排序算法
- 数据结构复习之–“选择排序”-JAVA实现
- 数据结构复习笔记:使用PHP实现内排序之冒泡排序和简单选择排序
- 排序算法复习之——内部排序算法之——选择排序
- 排序复习
- 当expandlistview的getGroupView或者getChildView中包含checkbox时,前者点击不可用
- 线性插补法查找
- HDU1176 免费馅饼 经典DP
- UI day 19 UICollectionView
- Git@OSC代码托管(含Git教程!important非命令行)
- 选择排序复习
- UI day 20 iOS FMDB自己封装的单例类
- UI day 21 程序 进程 线程 GCD 共产党
- java并发编程学习之脏读代码示例及处理
- LeetCode 14:Longest Common Prefix
- UI day 22 block动画 CAlayer动画
- 工程优化作业——成功失败法和黄金分割法
- Android Service使用Messenger通信
- 129Sum Root to Leaf Numbers