单行数组排序【选择排序】

sense:也许只有那些时刻准备着的人,才有资格过得好吧

  1. 虽然选择排序和冒泡排序都是在一次内循环后确定了一个元素的位置,不同的是冒泡会移动一些中间位置【这些元素移动的位置并不是它最终位置】
  2. 选择排序,使用了标记这个概念【我的理解是:给将可能成为极端位置的元素标记(极端是指有序序列逻辑上的端位置)】

具体代码:

 1 public class ChooseSort {
 2     public static void main(String []args){
 3         int array[] = {3,2,41,23,45,56,25,7,32,15};
 4         sort(array);
 5         for (int value:array)
 6             System.out.print(" "+value);
 7     }
 8     //排序方式:从小到大
 9     public static void sort(int array[]){
10         int markup=0,
11         temp = 0;
12         for (int outer = 0;outer<array.length;outer++) {
13             markup = outer;
14             for (int inner = outer; inner < array.length; inner++)
15                 if (array[inner]<array[markup])
16                     markup=inner;
17             if (markup != outer){
18                 temp = array[outer];
19                 array[outer] = array[markup];
20                 array[markup] = temp;
21             }
22         }
23     }
24 }

选择排序

运行结果:

时间: 2024-10-10 08:21:13

单行数组排序【选择排序】的相关文章

使用指针方式进行数组排序 选择排序:

#include<stdio.h> void select_sort(int *a,int n) { int i,j; for(i = 0;i<n-1;i++) { for(j = i+1;j < n;j++) { if(*(a+i)>*(a+j)) { int temp; temp = *(a+i); *(a+i) = *(a+j); *(a+j) = temp; } } } /* for(i = 0;i < n;i++) { printf("%d\t&qu

实例365(13)---------经典数组排序方法------选择排序法

一:使用选择排序法对一维数组进行排序,截图 /*选择排序的个人理解:第一遍筛选,选出其中最大的值,得到值和下标 将最大的值的位置和数组的第一个位置交换 从数组的第二个位置开始第二遍筛选 将其中最大的值的位置和数组的第二个位置交换 直到筛选完数组 */ 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; u

数组排序之选择排序

??在刚开始学习数组时,不能很好的使用简单的排序算法,当进行深入学习了一段时间后,才分清楚,今天这里简单的分享一下使用选择排序的算法并进行相关实例. 1. 什么是选择排序? ??从字面意思可以理解,就是有选择的进行排序,那么什么是有选择的呢?按照我的理解,就是按照某一种规则(例如从大到小或者从小到大)进行排序,就好像我们去看美女,肯定是先找气质最好的,依次往下,当然按照气质来进行选择的话,这是一个判断条件,是我们的一个标准:而我们所学习的选择排序也是这样. 专业解释: ??选择排序是通过每一趟排

Java数组排序算法之直接选择排序

1.基本思想 直接选择排序的基本思想是将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素值,注意这里区别冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换. 与冒泡排序相比,直接选择排序的交换次数要少很多,因此速度更快些. 2.算法示例 每一趟从待排序的数组元素中选出最小(或最大)的一个元素,顺序的放在已排好序的数组元素前或后,直到全部待排序的数据元素排完. 例如有一个6个元素的数组[63 4 24 1 3 15],排序大致过程如下所述: 第1轮排序:63和15交换位

数组排序(2)-选择排序

(一)选择排序 1.算法描述: (1) 初始状态:有序区为空,无序区为R[1..n]: (2) 第i趟排序(i=1,2,3…n-1)开始时,当前有序区和无序区分别为R[1..i-1]和R(i..n).该趟排序从当前无序区中-选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R[i+1..n)分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区; (3) n-1趟结束,数组有序化了. 2.手动模拟排序: 3.算法分析: (1)时间复杂度:平均情况 O(n2

数组排序代码,冒泡排序&amp;快速排序&amp;选择排序

冒泡排序: for(var i=0;i<arr.length-1;i++){ for(var j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ var temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } 选择排序: var arr=[2,5,4,6,3,7,1]; for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length

C语言中的排序算法--冒泡排序,选择排序,希尔排序

冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端 维基百科:点击打开链接 [cpp] view plain copy /* 用选择法对10个数进行排序 */ #include<stdio.h> void main() { int i,j,

常用排序法之一 ——冒泡排序法和选择排序法

语言中,常用的算法有:冒泡排序.快速排序.插入排序.选择排序.希尔排序.堆排序以及归并排序等等.那么从这篇开始,我将分别总结下这几种排序法. 先交代一下,我们将要排序的数组定义为arr[N],即数组arr[]包含N个元素. ## 冒泡排序法(Bubblesort) ## 所谓排序法,就是对一组无序的序列进行有序的排序(从大到小或者从小到大),那么什么叫冒泡排序法,冒泡排序法又是怎么实现数组的有序排列呢. 冒泡排序法的具体实现方法是这样的,从数组的第一个元素`arr[0]`开始,两两比较**(`a

蛮力法-选择排序、冒泡排序

时间总让我有后知后觉的挫感,或许是因为我从不愿记录过往. 3.1.1 选择排序(n个元素,0~n-1,升序,不稳定) 对数组A做i次扫描(0<=i<=n-2),每次从最后n-i个元素中寻找最小元素,然后将它与Ai交换. 代码实现 /** * 选择排序(升序) * @param array 排序的数组 * */ public static void selectSort(int[] array){ for(int i=0;i<array.length-1;i++){ int min=i;