把一个数组按照从小到大的顺序排列

arr = [ 13,15,6,2,12,41,38,32 ];
var e = 0;
     for ( var i = 0 ; i < arr.length ; i++ ){
           for ( var j = 0 ; j < arr.length ; j++ ){
              if ( arr [ j ] > arr [ j +1 ]){
                    arr [ j ] = arr [ j ] ^ arr [ j + 1 ];
                    arr [ j + 1 ] = arr [ j ] ^ arr [ j + 1 ];
                    arr [ j ] = arr [ j ] ^ arr [ j + 1 ];
                 };
            };
        };
console.log ( arr );

利用双for循环,当 i = 0 时,第二个for循环会依次比较相邻的两个元素,

如果前面一个元素大于后面一个元素就会把前面一个元素跟后面一个元素对调,

对调的方式有很多总,这里利用的是亦或 ( ^ ) 。

当第二个for循环第一次循环结束后,整个数组的最大元素就会被移动到最后一位。

然后第一个for循环循环第二次,然后再进行一次排序,就会让数组第二大的元素排到

倒数第二取。如此循环下去当第一个for循环结束时,整个数组就按照从小到大的顺序排好了。

时间: 2024-10-09 19:26:31

把一个数组按照从小到大的顺序排列的相关文章

如何将数组中的数字按照从小到大的顺序排列???

经过视频的学习,总结了一下,大神们请指教.... 如果要将数组中的数字按照从小到大的顺序排列. 完成思路:将最小的数字放在数组的第一项,将第二小的数组放在第二项,一直重复,知道完成. 那么如何将最小的数字放在数组索引为0的位置呢? 示例: for(int j = i+1:j  < arrays.Length;j++) { if (arrays[0] > arrays[j]) { int temp = arrays[0]; arrays[0] = arrays[j]; arrays[j] = t

巧妙利用快速排序法的原理求一个数组中的第10大元素

//快速排序法 int QuickSort_process3(int *a, int low, int high) { int l, h, temp; l = low; h = high; temp = a[low]; while (l < h){ while (l< h&&a[h] >= temp) --h; if (l < h) a[l] = a[h]; while (l < h&&a[l] < temp) ++l; if (l &l

选取10-100之间的10个数字,存入一个数组,并排序

//选取10-100之间的10个数字,存入一个数组,并排序//实现该功能函数function randomNub(arr,len,min,max){ //如果给的长度大于取值范围,则超出提示 if(len>=(max-min)){ return "超过"+min+"-"+max+"之间的个数范围"+(max-min-1)+"个的总数"; } //从小到大排序,实现该数组的降序排列 if(arr.length>=le

java实现求一个数组里最大值和最小值之前缺省的数的算法

问题描述: 求一个数组里最大值和最小值之间缺省的数,例如 int arrDemo = {1, 3, 7};  那么就要输出最小值1和最大值7之间缺少的数字2,4,5,6 代码如下,有更好的思路欢迎大家在评论区留言讨论 1 package test; 2 3 public class Test { 4 5 static int[] array = { 6 -10,0,3,3,9 7 }; 8 9 private static void printEmptyItems(int[] array) {

如何在linux Shell脚本里面把一个数组传递到awk内部进行处理

前段时间和几位同事讨论过一个问题:Shell脚本里面怎样把一个数组传递到awk内部进行处理? 当时没有找到方法.前两天在QQ群里讨论awk的时候,无意间又聊起这个话题.机缘巧合之下找到一个思路,特此分享. 测试环境: [root]# head -1 /etc/redhat-release Red Hat Enterprise Linux Server release 6.5 (Santiago) [root]# awk --version | head -1 GNU Awk 3.1.7 众所周知

程序员面试100题之十:快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值(转)

能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解. 假如有如下的两个数组,如图所示: 5,6,1,4,7,9,8 给定Sum= 10 1,5,6,7,8,9 给定Sum= 10 分析与解法 这个题目不是很难,也很容易理解.但是要得出高效率的解法,还是需要一番思考的. 解法一 一个直接的解法就是穷举:从数组中任意取出两个数字,计算两者之和是否为给定的数字. 显然其时间复杂度为N(N-1)/2即O(N^2).这个算法很简

js实现随机选取[10,100)中的10个整数,存入一个数组,并排序。 另考虑(10,100]和[10,100]两种情况。

1.js实现随机选取[10,100)中的10个整数,存入一个数组,并排序. 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <script type="text/java

查找一个数组中超过一半的元素

程序1.0 思想:现将数组排序,再找出元素 void Arraysort(int *a, int length)//冒泡O(n^2) { for (size_t i = 0; i < length; i++) { for (size_t j = 1; j <length - 1 - i; j++) { if (a[j]>a[j + 1]) swap(a[j], a[j + 1]); } } } int MorethanHalfNumber(int *a, int length) { Ar

delphi 判断一个数组的长度用 Length 还是 SizeOf ?

判断一个数组的长度用 Length 还是 SizeOf ?最近发现一些代码, 甚至有一些专家代码, 在遍历数组时所用的数组长度竟然是 SizeOf(arr); 这不合适! 如果是一维数组.且元素大小是一个字节, 这样用看不出错误, 譬如:  -------------------------------------------------------------------------------- vararr1: array[0..9] of Char;arr2: array[0..9] o