数组快速排序

11 <script>
12 function quickSort(arr) {
13   if (arr.length <= 1) {
14     return arr;
15   }
16
17   var num = Math.floor(arr.length/2);
18
19   var numValue = arr.splice(num,1);
20   var left = [];
21   var right = [];
22
23   for (var i = 0; i < arr.length; i++) {
24     if (arr[i] < numValue) {
25       left.push(arr[i]);
26     }
27     else {
28       right.push(arr[i]);
29     }
30   }
31
32   return quickSort(left).concat([numValue], quickSort(right));
33 }
34 alert(quickSort([32,45,37,16,1,87]))
35 </script>
时间: 2024-10-10 17:48:16

数组快速排序的相关文章

二维数组快速排序(sort+qsort)

二维数组快速排序 qsort是c中快速排序,如果简单的一维数组排序,想必大家的懂.现在看一下二维数组的排序,虽然可以冒泡但是太费时间了,我们这里使用qsort来快速排序,看代码应该看得懂吧. 代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 struct node 4 { 5 int x,y; 6 }a[10005]; 7 int cmp(const void *a,const void *b) //要转化为结构体类型 8 { 9 str

C语言实现数组快速排序(含对算法的详细解释)

/* 说明: 代码参考过网上代码,但分析为个人原创,本贴重在说明快速排序算法的思想和运行过程. */ 代码部分: #include<stdio.h> #include<stdlib.h> void quickSort(int* arr,int startPos, int endPos) { int i, j; int key; key = arr[startPos]; i = startPos; j = endPos; while (i<j) { while (arr[j]

iOS数组快速排序

欢迎访问我的新博客: 开发者说 对数组元素排序是使用任何编程语言都会遇到的一个问题,其中大部分已经提供了一些很方便的排序方法供我们使用,那么iOS开发中有哪些方法可以让我们实现对数组元素快速排序呢? 先定义一个数组,然后对其中元素进行排序: NSArray *originalArray = [NSArray arrayWithObjects:[NSNumbernumberWithInt:5], [NSNumber numberWithInt:6], [NSNumber numberWithInt

js数组快速排序

<script type="text/javascript"> var arr = [1, 2, 3, 54, 22, 1, 2, 3]; function quick(arr) { if (arr.length <= 1) return arr; var proiindex = Math.floor(arr.length / 2); var proift = arr.splice(proiindex, 1)[0]; //找基准,并把基准从原数组删除 var left

js数组快速排序/去重

数组的排序 var arr = []; for(var i=0;i<20;i++){      arr.push(Math.floor(Math.random()*100))  }  //生成一个无序的arr数组  function sort(arr,start,end){      //数组长度为1      if(start == end ){          return [arr[start]]      }else if(start == end-1){          //数组长

8、数组

数组是一种数据结构,用来存储同一类型值得集合.通过一个整型下标可以访问数组中的每一个值. 声明数组变量:需要指出数组类型(数组元素类型[])和数组变量的名字. 创建数组:使用关键字new创建数组. 例如:int[] a = new int[10]; 中括号中的整数表示数组的大小. 数组的初始化: 创建一个数字数组时,所有的元素都被初始化为0,. boolean数组的元素被初始化为false. 对象数组被初始化为一个特殊的值null,表示这些元素未存放任何对象. 获取数组中的元素: 数组名[n]

夯实基础——快速排序

逻辑结构:递归栈 物理结构:数组 快速排序分析: 最优时间复杂度:O(nlog2n)在乱序情况下 最坏时间复杂度:O(n^2) 在顺序情况下 平均时间复杂度:O(nlog2n) 空间复杂度:O(n) 稳定性:不稳定 快速排序主要有两个函数: 1 一次划归 int partition(int a[],int low,int high); 2 递归快速排序 void QuickSort(int a[],int low,int high); 3 非递归快速排序 void NonQuickSort(in

链表快速排序

大致思想是通过一个指针数组转化为常规数组快速排序,最后再重新梳理链表. #include <iostream> #include <vector> using namespace std; typedef struct NODE{ int data; NODE* next; NODE(int _data) : data(_data), next(nullptr){} }NODE; NODE* createLinkTable() { const int tableLen = 10;

【基础算法】少女时代的快速排序

BigMoyan准备做一个连续的文章,以算法导论为蓝本,尽量用亲切生动的语言把一些经典的算法讲清楚,欢迎来捧场~ 本人并非计算机专业学生,文章有疏漏错误之处,还望专家们指正,在此谢过 ------------------------------------------------------------------------------------------------------------------------- [少女时代从左到右:徐珠贤,金泰妍,金孝渊,林允儿,权侑莉,郑秀妍,李顺