数据结构之选择排序

简介: 数据结构之选择排序




基本方法:


从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处,第二次找到第二小的值。


具体是如何实现呢?


       第一轮是0索引上的数据依次跟后面各个索引上的数据进行比较,直到遇到一个比它小的数据,这时候,这个小的数据就替换掉0索引上原来的数据,接着这个替换掉的数据继续跟它原来的索引位置的后面的索引上的数据进行比较也就是说,进行完第一轮后,0索引上的数据肯定是这个数组上最小的数据


       第二轮接着就是1索引上的数据来跟后面的数据进行比较,这个时候参与比较的数据比原来少了一个


       第三轮又会少一个,这样循环一轮j的值就会+1,也就是j开始的索引下标+1。


简单例子:


public class Demo5 {  
    public static void main(String[] args) {  
    int number[]={49,38,65,97,76,13,27,14,10};  
    for(int i=0;i<number.length;i++){  
        for(int j=i+1;j<number.length;j++){  
        if(number[i]>number[j]){  
            int tmp=number[i];  
            number[i]=number[j];  
            number[j]=tmp;  
        }  
        }  
        for (int j = 0; j < number.length; j++) {  
        System.out.print(number[j]+"\t");  
        }  
        System.out.println("第"+(i+1)+"次排序后的结果");       
     }  
   }  
}
相关文章
|
11月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
306 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
|
搜索推荐
【数据结构常见七大排序(二)】—选择排序篇【直接选择排序】And【堆排序】
【数据结构常见七大排序(二)】—选择排序篇【直接选择排序】And【堆排序】
|
机器学习/深度学习 算法 搜索推荐
数据结构算法--2 冒泡排序,选择排序,插入排序
**基础排序算法包括冒泡排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换,逐步将最大值“冒”到末尾,平均时间复杂度为O(n^2)。选择排序每次找到剩余部分的最小值与未排序部分的第一个元素交换,同样具有O(n^2)的时间复杂度。插入排序则类似玩牌,将新元素插入到已排序部分的正确位置,也是O(n^2)复杂度。这些算法适用于小规模或部分有序的数据。**
|
算法 搜索推荐
数据结构与算法-选择排序
数据结构与算法-选择排序
80 4
|
存储 搜索推荐 算法
[数据结构]————排序总结——插入排序(直接排序和希尔排序)—选择排序(选择排序和堆排序)-交换排序(冒泡排序和快速排序)—归并排序(归并排序)
[数据结构]————排序总结——插入排序(直接排序和希尔排序)—选择排序(选择排序和堆排序)-交换排序(冒泡排序和快速排序)—归并排序(归并排序)
162 1
|
存储 算法 搜索推荐
【数据结构与算法】:选择排序与快速排序
欢迎来到排序的第二个部分:选择排序与快速排序!
【数据结构与算法】:选择排序与快速排序
|
搜索推荐 算法 C++
[数据结构]-玩转八大排序(一)&&插入排序&&选择排序
[数据结构]-玩转八大排序(一)&&插入排序&&选择排序
|
存储 算法 C语言
数据结构和算法——堆排序(选择排序、思路图解、代码、时间复杂度、堆排序及代码)
数据结构和算法——堆排序(选择排序、思路图解、代码、时间复杂度、堆排序及代码)
85 0
|
存储 算法 搜索推荐
【数据结构与算法】归并排序(详解:递归与非递归的归并排序 | 赠:冒泡排序和选择排序)
【数据结构与算法】归并排序(详解:递归与非递归的归并排序 | 赠:冒泡排序和选择排序)
|
人工智能 搜索推荐 索引
[数据结构]———选择排序
[数据结构]———选择排序