arr

常见排序算法

六月ゝ 毕业季﹏ 提交于 2020-01-18 18:54:16
package com.sort;import java.util.Arrays;/** * 〈一句话功能简述〉; * 〈冒泡排序〉 * * @author jxx * @see [相关类/方法](可选) * @since [产品/模块版本] (可选) */public class pop { public static void main(String[] args){ int[] arr = {2,4,5,1,7,9}; System.out.println(Arrays.toString(sortPop(arr))); } public static int[] sortPop(int[] arr) { for(int i=0;i<arr.length - 1;i++) { for(int j=0;j<arr.length - 1 - i;j++) { if(arr[j] > arr[j+1]) { int tmp = arr[i]; arr[i] = arr[j+1]; arr[j+1] = tmp; } } } return arr; }} 来源: https://www.cnblogs.com/jxxblogs/p/12209828.html

第六周编程总结

↘锁芯ラ 提交于 2020-01-18 14:02:34
6-1 求两数平方根之和 (10 分) 函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。 函数接口定义: double fun (double a, double b); 其中 a和 b是用户传入的参数。函数求 a指针和b 指针所指的两个数的平方根之和,并返回和。 裁判测试程序样例: include<stdio.h> include <math.h> double fun (double a, double b); int main ( ) { double a, b, y; scanf ("%lf%lf", &a, &b ); y=fun(&a, &b); printf ("y=%.2f\n", y ); return 0; } (1)实验代码 double fun (double a, double b) { double sum; sum=sqrt( a)+sqrt( b); return sum; } (2)设计思路:首先定义浮点型 a, b,sum然后进入公式再运行,再然后结束sum。 (3)运行截图 7-1 利用指针返回多个函数值 (30 分) 读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。 输入格式: 输入有两行: 第一行是n值; 第二行是n个数。 输出格式: 输出最大值和最小值

【数据结构22】希尔排序

梦想与她 提交于 2020-01-18 08:17:38
1. 希尔排序介绍 2. 希尔排序思路 3. 代码实现 3.1 交换法 希尔排序推导过程: public class ShellSort { public static void main ( String [ ] args ) { int [ ] arr = { 8 , 9 , 1 , 7 , 2 , 3 , 5 , 4 , 6 , 0 } ; System . out . println ( "排序前:" + Arrays . toString ( arr ) ) ; shellSort ( arr ) ; } public static void shellSort ( int [ ] arr ) { int temp = 0 ; //第一轮排序:将10个数据分成5组 for ( int i = 5 ; i < arr . length ; i ++ ) { //如果当前元素大于步长后面的那个元素,说明交换 for ( int j = i - 5 ; j >= 0 ; j -= 5 ) { if ( arr [ j ] > arr [ j + 5 ] ) { temp = arr [ j ] ; arr [ j ] = arr [ j + 5 ] ; arr [ j + 5 ] = temp ; } } } System . out . println ( "第1轮:" )

方阵中的最大乘积

只谈情不闲聊 提交于 2020-01-17 20:21:13
题目 在这个 n×n 方阵中,4个在同一方向(从下至上、从上至下、从右至左、从左至右或者对角线)上相邻的数的乘积最大是多少? 代码一 把乘积先存在一个数组里,然后从成绩数组里找最大值。 const testGrid = [ [40, 17, 81, 18, 57], [74, 4, 36, 16, 29], [36, 42, 69, 73, 45], [51, 54, 69, 16, 92], [7, 97, 57, 32, 16] ]; function largestGridProduct(arr) { let len = arr.length; largest = arr[0][0] //横向的4位数之和 console.log('横向的4位数之和') for (let row = 0; row < len; row++) { for (let col = 0; col < len - 3; col++) { console.log(arr[row][col], arr[row][col + 1], arr[row][col + 2], arr[row][col + 3]) largest = getLargest(arr[row][col] * arr[row][col + 1] * arr[row][col + 2] * arr[row][col + 3]) } } /

第六周编程总结

自作多情 提交于 2020-01-17 05:26:33
这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass1-2018/homework/2892 我在这个课程的目标是 学习和掌握指针的知识和运用 参考文献 C语言程序设计II 基础作业 6.1函数题: 求两数平方根之和 函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。 函数接口定义: double fun (double *a, double *b); 其中 a和 b是用户传入的参数。函数求 a指针和b 指针所指的两个数的平方根之和,并返回和。 裁判测试程序样例: #include<stdio.h> #include <math.h> double fun (double *a, double *b); int main ( ) { double a, b, y; scanf ("%lf%lf", &a, &b ); y=fun(&a, &b); printf ("y=%.2f\n", y ); return 0; } /* 请在这里填写答案 */ 输出样例: 12 20 输入样例: y=7.94 实验代码: double fun (double *a, double *b) { double

大堆顶排序

本小妞迷上赌 提交于 2020-01-17 01:50:11
package heap ; import java . util . Arrays ; /** * Created by lijie35 on 2020-01-16 3:49 PM . */ public class BigHeap { public static void main ( String [ ] args ) { int [ ] arr = { 3 , 4 , 23 , 100 , 80 , 70 , 60 , 40 , 50 , 30 } ; System . out . println ( "排序前:" + Arrays . toString ( arr ) ) ; sort ( arr ) ; System . out . println ( "排序前:" + Arrays . toString ( arr ) ) ; int [ ] arr1 = new int [ 9 ] ; System . arraycopy ( arr , 1 , arr1 , 0 , arr . length - 1 ) ; sort ( arr1 ) ; System . out . println ( "排序前:" + Arrays . toString ( arr1 ) ) ; } /** * ------100 * ------/ \ * ----80 70 * ---/

展开运算符spread和剩余运算符Rest

不打扰是莪最后的温柔 提交于 2020-01-16 18:35:32
展开运算符和剩余运算符 展开运算符是三个点你(...),可以将一个数组转为用逗号分隔的参数序列。说的通俗易懂点,就好像化骨绵掌,把一个大元素给打散成一个个单独的小元素。 //demo 1 传递数据代替多个字符串的形式 function test(a,b,c){ console.log(a); console.log(b); console.log(c); } var arr = [1, 2, 3]; test(...arr); //demo2 将一个数组插入到另一个数据中 var arr1 = [1, 2, 3,4]; var arr2 = [...arr1, 4, 5, 6]; console.log(arr2); //demo3 字符串转数据 var str='loycoder'; var arr3= [...str]; console.log(arr3); 剩余运算符也是三个小点(...),但是它是用于解构数组和对象。在某种程度上,剩余元素和展开元素相反,展开元素会‘展开’数组变成多个元素,剩余元素会收集多个元素和‘压缩’成一个单一元素。 demo1: var [a,...temp]=[1, 2, 4]; console.log(a); //2 1 console.log(temp); // [2, 4] demo2 function rest02(item, ...arr)

剑指offer-左旋转字符串

删除回忆录丶 提交于 2020-01-16 14:47:17
题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它! 思路: 1. public class Solution { public String LeftRotateString ( String str , int n ) { if ( str == null || str . length ( ) < 1 ) return str ; int len = str . length ( ) ; n = n % len ; return str . substring ( n , len ) + str . substring ( 0 , n ) ; } } 2.先把整个字符串进行反转,然后按照n分成左右两个部分,分别对这两个部分进行反转 要注意边界条件,如果n < 0呢 public class Solution { public String LeftRotateString ( String str , int n ) { if ( n <= 0 || str == null || str . length ( ) < 1 )

常用的十大排序算法,经典图解版,『精』!!!

倾然丶 夕夏残阳落幕 提交于 2020-01-16 08:33:26
前言 本文或许是东半球分析十大排序算法最好的一篇文章,配有 70 张图片和动画,和你一起一步步看懂排序算法的运行过程。 预计阅读时间 47 分钟,强烈建议先收藏然后通过电脑端进行阅读。 No.1 冒泡排序 冒泡排序无疑是最为出名的排序算法之一,从序列的一端开始往另一端冒泡(你可以从左往右冒泡,也可以从右往左冒泡,看心情),依次比较相邻的两个数的大小(到底是比大还是比小也看你心情)。 冒泡排序动图演示 图解冒泡排序 以 [ 8,2,5,9,7 ] 这组数字来做示例,上图来战: 从左往右依次冒泡,将小的往右移动 冒泡排序1 首先比较第一个数和第二个数的大小,我们发现 2 比 8 要小,那么保持原位,不做改动。位置还是 8,2,5,9,7 。 指针往右移动一格,接着比较: 冒泡排序2 比较第二个数和第三个数的大小,发现 2 比 5 要小,所以位置交换,交换后数组更新为:[ 8,5,2,9,7 ]。 指针再往右移动一格,继续比较: 冒泡排序3 比较第三个数和第四个数的大小,发现 2 比 9 要小,所以位置交换,交换后数组更新为:[ 8,5,9,2,7 ] 同样,指针再往右移动,继续比较: 冒泡排序4 比较第 4 个数和第 5 个数的大小,发现 2 比 7 要小,所以位置交换,交换后数组更新为:[ 8,5,9,7,2 ] 下一步,指针再往右移动,发现已经到底了,则本轮冒泡结束,处于最右边的