java选择排序代码
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于java选择排序代码内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在java选择排序代码相关知识领域提供全面立体的资料补充。同时还包含 j2ee是什么、jar格式、java 的知识内容,欢迎查阅!
java选择排序代码相关知识
-
java实现选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多 n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。具体的实现是默认把第一个元素设成最下的,循环所有元素,依次比较 找到比它小的进行交换public static void selection_sort(int[] arr) { int i, j, min, temp, len = arr.length;
-
选择排序就这么简单tags: 算法 选择排序就这么简单 从上一篇已经讲解了冒泡排序了,本章主要讲解的是选择排序,希望大家看完能够理解并手写出选择排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。 选择排序介绍和稳定性说明 来源百度百科: 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始(末尾)位置,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法(比如序列[5, 5
-
选择排序和插入排序只选择排序选择排序的原理是将一个无序数组的第一项以后面的数进行排序,每次都选出一个最小值,比如比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。 以下面5个无序的数据为例: 56 12 80 91 20(文中仅细化了第一趟的选择过程) 第1趟:12 56 80 91 20 第2趟:12 20 80 91 56 第3趟
-
选择排序和冒泡排序选择排序:每一趟的选择出来最小的那个数,然后跟这一趟的最前面的那个数调换一下位置。冒泡排序:每一趟都是比较相邻的两个数,大的数放在后面,这样每一趟的最大的数,都会到这一趟的最后面。记忆技巧:选择排序:每趟的目的是选择出来一个最小的数。冒泡排序:比较相邻的数。两个排序的相同点:1.每一趟都使得一个数到达它最终的位置上。(区别有归并排序和快速排序,它们是逐渐有序的过程)2.都是n^2的时间复杂度。两个排序的不同点:每一趟比较的方式不同。写算法时注意的点:注意边界问题。
java选择排序代码相关课程
java选择排序代码相关教程
- 选择排序 今天我们来聊一下同样比较基础的排序算法-选择排序。选择排序是一种非常直观的排序算法,复杂度为 O(n2)O(n^2)O(n2),和前面介绍的两种算法一样不需要额外的空间。
- 2.2 链表版的选择排序 同样,对于链表版的选择排序,我们需要用示意图来描述下这个选择排序的过程,这样才能更好帮助我们实现代码。链表的选择排序依据上面的示意图,我们给出如下链表的选择排序方法。其中,各个变量的说明在示意图中已有体现,且代码中也给出了部分注释,帮助大家更好理解算法过程。def choose_sort_link(head): """ 排序链表 """ first = head while first.next: p = first min_val = p.val # 指向最小节点的位置 k = p while p: if p.val < min_val: min_val = p.val k = p p = p.next # 交换最小位置和遍历的起始位置的值 first.val, k.val = min_val, first.val first = first.next return head这个对链表排序的题目在 leetcode 上也是有的,题号为148。我使用该代码进行了测试,发现无法通过最后得测试,这并非代码实现问题,而是题目本身的效率要求。后续读者可以使用其他排序算法来完成对链表的排序,通过该题题解。
- 4. Java 代码实现 在说明选择排序的整个过程之后,接下来,我们看看如何用 Java 代码实现选择排序算法。import java.util.Arrays;public class SelectSort { public static void main(String[] args) { //初始化需要排序的数组 int array[] = {9, 2, 11, 7, 12, 5}; //依次进行选择排序,每次找出最小的元素,放入待排序的序列中 for(int i=0;i<array.length;i++){ //记录最小元素min和最小元素的数组下标索引minIndex int min = array[i]; int minIndex = i; //在未排序的序列中找出最小的元素和对应数组中的位置 for(int j=i+1;j<array.length;j++){ if(array[j] < min){ min = array[j]; minIndex = j; } } //交换位置 int temp = array[i]; array[i] = array[minIndex]; array[minIndex] = temp; } //打印出排序好的序列 System.out.println(Arrays.toString(array)); }}运行结果如下:[2, 5, 7, 9, 11, 12]代码中的第 7 行初始化一个需要排序的数组,后面按照从小到大的排序规则,实现了数组的排序。第 10 行是外层 for 循环,不断地重复选择排序工作。第 17 行是内层循环,不断地实现每一次 “选择 “,在未排序的序列中找出最小的元素和对应数组中的位置。第 24 至第 27 行实现了将未排序好的序列中的最小元素与需要排序的位置的元素进行交换的功能。第 31 行打印出排序好的数组。
- 2. 什么是选择排序? 选择排序(Select Sort),是计算机科学与技术领域中较为简单的一种排序算法。假设我们按照从小到大的顺序进行排序。选择排序会首先从待排序序列中选择一个最小的元素放入排序好的序列中,然后依次在从未排序好的序列中选择最小的元素,直到最后需要选择的待排序序列中只有一个元素,只需要将这个元素放在最后位置,就完成了整个排序过程。选择排序的算法名称的由来就是因为在排序的过程中,按照排序规则(升序或者降序),依次从待排序的序列中选择出需要排列的元素。越小或者越大的元素会先选择出来,直至完成整个排序。
- 3. 选择排序过程 在介绍完选择排序之后,我们一起来看一下选择排序的实现步骤具体是什么样的吧。这里我们假设待排序的序列为 [9,2,11,7,12,5],我们按照从小到大的序列进行排序。
- 2.1 数组版的选择排序 对于数组版的选择排序,实现的代码如下:def choose_sort(nums): """ 选择排序 """ for i in range(len(nums) - 1): min_val = nums[i] # 标记最小值位置 k = i for j in range(i + 1, len(nums)): # 每次遍历,找到本轮剩余元素的最小值,同时记录相应位置 if nums[j] < min_val: min_val = nums[j] k = j # 每次遍历数组后找到最小值,交换当前位置与本轮最小值的位置 if k != i: nums[i], nums[k] = nums[k], nums[i]
java选择排序代码相关搜索
-
j2ee
j2ee是什么
jar格式
java
java api
java applet
java c
java jdk
java list
java map
java script
java se
java socket
java swing
java switch
java web
java xml
java 程序设计
java 多线程
java 环境变量