selectSort

function selectSort(arr) {
    var len = arr.length;

    for (var i = 0; i < len -1; i++) {
        for (var j = i + 1; j < len; j++) {
            if (arr[i] > arr[j]) {
                var temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }

    return arr;
}

var arr = [1, 3, 2, 5, 4];
console.log(selectSort(arr)); // [1, 2, 3, 4, 5]
时间: 2024-10-13 07:50:48

selectSort的相关文章

排序--SelectSort优化

SelectSort:(以升序为例) 选择排序的基本思想:初始时,有序区为0,每一趟在无序区中选出一个关键字最小的元素,然后与无序区第一个元素交换,然后无序区减1,有序区加1,直到记录全部排完. 直接选择排序:第一趟排序在R[0..n]中选出一个关键字最小的与R[0]交换,第二趟在R[1..n]中选择一个最小的与R[1]进行交换,以此类推直到无序区的记录只剩一个时排序完成. 要知道"比较"与"移位"相比,移位更花费时间,所以直接选择排序相比于插入排序来说,能更好一点

排序算法ONE:选择排序SelectSort

1 /** 2 *选择排序: 3 * 对冒泡排序的一个改进 4 * 进行一趟排序时,不用每一次都交换,只需要把最大的标示记下 5 * 然后再进行一次交换 6 */ 7 public class SelectSort 8 { 9 /** 10 *选择排序主方法 11 * 12 */ 13 public static void selectSort(int[] resouceArr) 14 { 15 for(int i = resouceArr.length - 1 ; i >= 0 ; i-- )

BasicSort 之 SelectSort

一.选择排序 核心:不断地选择剩余元素中的最小者. 找到数组中最小元素并将其和数组第一个元素交换位置. 在剩下的元素中找到最小元素并将其与数组第二个元素交换,直至整个数组排序. 性质: 比较次数=(N-1)+(N-2)+(N-3)+...+2+1~N^2/2 交换次数=N 运行时间与输入无关 数据移动最少 二.实现 实现方式一: package sort; public class SelectSort { /** * 选择排序: 不断地选择剩余元素中的最小者. * 1.找到数组中最小元素并将其

数据结构基础(1) --Swap &amp; Bubble-Sort &amp; Select-Sort

Swap的简单实现 //C语言方式(by-pointer): template <typename Type> bool swapByPointer(Type *pointer1, Type *pointer2) { //确保两个指针不会指向同一个对象 if (pointer1 == NULL || pointer2 == NULL) { return false; } if (pointer1 != pointer2) { Type tmp = *pointer1; *pointer1 =

选择排序SelectSort

/** * * @author Administrator * 功能:选择排序法 */ package com.test1; import java.util.Calendar; public class SelectSort { public static void main(String[] args) { // TODO Auto-generated method stub //int[] arr = { 1, 6, 0, -1, 9, -100, -90 }; int[] arr = n

简单选择排序SelectSort

package com.cc.dataconsttuct.com; /*** * 简单选择排序:令A[0,n-1]有n个数据元素的数组,将数组A排列为一个非降序的有序数组: * 算法:首先在n个元素中找到最小元素,将其放在A[0]中,然后将剩下的n-1个元素中找到最小的放在A[1]中,这个过程不断进行下去.... * @author caocx * */public class SelectSort { public static void main(String[] args) { // TO

SelectSort 选择排序

# SelectSort选择排序_Python实现 def select_sort(li): for i in range(len(li)): min_index = i # 此处确定刚刚所排序好的最小值的次序 for j in range(i+1, len(li) ): # 此处range最大值为index最高位数+1, 因为遍历是从i+1开始和i对比. if li[j] < li[min_index]: min_index = j li[i], li[min_index] = li[min_

《转》八大算法详细讲解

转自http://blog.csdn.net/jobbofhe/article/details/51426934 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序.堆排序或归并排序序. 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短:

排序、查找算法

1> 插入排序 //插入排序(把第一个当作也排好序,然后对后面的依次插入到已排好序的队列中)平均时间复杂度0(n^2) public void insertSort(int[] a){ for(int i = 1;i<a.length;i++){ for(int j = i;j > 0;j--){ if(a[j] < a[j-1]){ int tmp = a[j]; a[j] = a[j-1]; a[j-1] = tmp; } } } } 2> 希尔排序 /*希尔排序:平均时