1.1概述 ?表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度,所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了。 1.2描述 初始状态:无序区为R[1..n],有序区为空。 第i趟排序(i=1,2,3…n-1)开始时,当前有序区和无序区分别为R[ ...
分类:
编程语言 时间:
2020-07-20 00:00:31
阅读次数:
96
$arr = array(1,3,2,4,5,6,9,10,15,11);$len = count($arr);for($i=0;$i<$len;$i++){ for($k=$i+1;$k<$len;$k++){ if($arr[$i] > $arr[$k]){ $tmp = $arr[$k]; $ ...
分类:
编程语言 时间:
2020-07-19 17:50:21
阅读次数:
53
内部排序:数据记录在内存中进行排序外部排序:待排序文件较大,需要访问外存常见的内部排序:插入排序(直接插入、折半插入、希尔排序)、交换排序(冒泡、快排)、选择排序(简单选择、堆排序)、归并排序(2路归并)、基数排序外排:归并排序(多路归并)、各种内排的性能比较:插入排序每次将一个待排序的记录按关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成每一轮能够确定一个最终位置的记录,某时刻的状态
分类:
编程语言 时间:
2020-07-19 16:23:30
阅读次数:
50
简介 选择排序就是从数组中选择出来最大或者最小的元素,然后将其和队首或者队尾的元素进行交互。 因为首先做的是一个选择的过程,所以叫做选择排序。 选择排序的例子 假如我们有一个数组:29,10,14,37,20,25,44,15,怎么对它进行选择排序呢? 先看一个动画: 选择排序的原理如下: 8个数字 ...
分类:
编程语言 时间:
2020-07-18 22:55:58
阅读次数:
111
快速排序 快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 选择最后一个数为基数,以 ...
分类:
编程语言 时间:
2020-07-17 19:32:32
阅读次数:
70
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的 ...
分类:
编程语言 时间:
2020-07-17 09:39:28
阅读次数:
79
冒泡排序 (Bubble Sort) 冒泡排序的基本概念 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为 ...
分类:
编程语言 时间:
2020-07-16 18:33:01
阅读次数:
65
循环结构嵌套 什么是二重循环: 一个循环体内又包含一个循环 外层循环循环一次,里层循环循环一遍 @Test public void test05(){ //打印一个五行五列的* for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ System.out.print( ...
分类:
其他好文 时间:
2020-07-15 23:49:13
阅读次数:
85
算法: 1、首先,找到数组中最小的那个元素。 2、其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换)。 3、再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。 这种方法叫做选择排序,因为它在不断地选择剩余元素之中的最 ...
分类:
编程语言 时间:
2020-07-15 15:42:51
阅读次数:
59
逆序对目前我所知的有三种解法 首先是最简单的冒泡排序,当每次前面一个数比后面一个数大时就会交换,因此可以用冒泡排序来求逆序对 代码: #include<bits/stdc++.h> using namespace std; int main(){ int n,sum=0; cin>>n; int a ...
分类:
其他好文 时间:
2020-07-14 21:51:19
阅读次数:
65