Sample Input 3 9 8 7 5 1 9 2 6 4 3 1 2 3 4 5 6 7 8 9 9 8 7 5 1 9 2 6 4 3 1 2 5 4 3 6 7 8 9 9 8 7 5 1 9 2 6 4 3 1 2 5 6 4 3 7 8 9 Sample Output Case #1: 6 Case #2: 4 Case #3: -1 Prof.Q is a sophisticated professor who has insights into quadrillions of…
冒泡排序是一种简单的排序算法. 它每次重复的访问过要排序的数列, 一次比较两个元素, 如果他们的顺错误, 就把他们交换过来. 下面这种图很清晰的解释了什么是冒泡算法. 具体算法描述如下: 1. 比较相邻的元素. 如果第一个比第二个大, 就交换他们两个. 2. 对每一对相邻元素作同样的工作, 从开始第一队到结尾的最后一对, 这样在最后的元素应该会是最大的数. 3. 针对所有的元素重复以上的步骤, 除了最后一个. 4. 重复步骤1-3, 直到排序完成. 我们来实现以下bubble sort // i…
//Bubble Sort ( O(n²)) public class TestBubbleSort { public int[] bubbleSortArray(int[] arr){ ; i < arr.length; i ++){ ; j < arr.length -i ; j ++){ ]){ int temp; temp = arr[j]; arr[j] = arr[j+]; arr[j+] = temp; } } } return arr; } public static void…
Sample Input 6 5 11 Sample Output 6 小Hi有一个长度为N的字符串,这个字符串每个位置上的字符两两不同.现在小Hi可以进行一种剪切操作: 选择任意一段连续的K个字符,把这段子串剪下来,粘在串首或者串尾.例如ABCDE -> ADEBC.ABCDE -> BCADE或者ABCDE -> DEABC等. 小Hi想知道如果可以反复进行任意次剪切操作,他最多可能得到多少种不同的字符串.由于数目可能非常大,你只需要输出模P的余数即可. Input 三个整数N, K…
#include <iostream.h> #define  MAX 100 void dispaly(int a[],int n) {     for(int i=0;i<n;i++)     {         cout<<"a["<<i<<"]="<<a[i]<<" ";     }     cout<<endl;      } // bubble s…
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-size: 10.5000pt } h1 { margin-top: 5.0000pt; margin-bottom: 5.0000pt; text-align: center; font-family: 宋体; color: rgb(26,92,200); font-weight: bold; fo…
Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.重复第一趟步骤,直至全部排序完成. 举例说明:要排序数组:int[] arr={6,3,8,2,9,1}; 第一趟排序: 比较,6大于3,交换位置…
常用算法(后面有inplace版本): package ArrayMergeSort; import java.util.Arrays; public class Solution { public int[] mergeSort(int[] arr) { if (arr.length == 1) return arr; else { int[] arr1 = Arrays.copyOfRange(arr, 0, arr.length/2); int[] arr2 = Arrays.copyOf…
常见的排序算法有Bubble Sort.Merge Sort.Quick Sort 等,所有排序算的基本法思想都是把一个无限大的数据规模通过算法一步步缩小,指导最后完成排序. 这里分享一下Buuble Sort算法,php版本的.冒泡排序不适合在待排序的数据集特别大的情况下,这里只是一个简易的demo,待排序的数据在10以内. 冒泡排序算法有2种极端的情况所导致的算法复杂度是不一样的: 所有的数据集都是有序的,则此时通过算法优化可以是算法的复杂度从 O(n^2) 将至 O(n) 所有的数据集都是…
冒泡排序(Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端. 冒泡排序对个项目需要O()的比较次数,且可以原地排序.尽管这个算法是最简单了解和实现的排序算法之一,但它对于少数元素之外的数列排序是很没有效率的. 冒泡排序是与插入排序拥有相等的运行时间,…