#include using namespace std;void BubbleSort(int*
a,int n){ for(size_t i=0;i a[j+1]){ int tmp = a[j]; a[j] = a[j+1]; ...
分类:
其他好文 时间:
2014-05-08 21:59:19
阅读次数:
264
一,直接选择排序
介绍:直接选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素...
分类:
其他好文 时间:
2014-05-08 05:10:31
阅读次数:
341
1 def bubble_sort(array) 2 return array if
array.size = array[j+1] 7 end 8 end 9 10 return array11 end12 13 a =
[12,42,1,25,32,63...
分类:
其他好文 时间:
2014-05-07 20:33:20
阅读次数:
260
归并排序
归并排序 (merge sort) 是一类与插入排序、交换排序、选择排序不同的另一种排序方法。归并的含义是将两个或两个以上的有序表合并成一个新的有序表。归并排序有多路归并排序、两路归并排序 , 可用于内排序,也可以用于外排序。这里仅对内排序的两路归并方法进行讨论。
1.两路归并排序算法思路
①把 n 个记录看成 n 个长度为1的有序子表;
②进行两两归并使记录关键字有序,...
分类:
编程语言 时间:
2014-05-07 11:47:08
阅读次数:
347
private static void sort1(int x[], int off, int len) {
// Insertion sort on smallest arrays //长度小于7,采用冒泡排序
if (len < 7) {
for (int i=off; ioff && x[j-1]>x[j];...
分类:
其他好文 时间:
2014-05-07 05:14:35
阅读次数:
279
OJ题目:click here~~
题目分析:1……n按顺序围成一个圈,1与n相邻。交换相邻两个数算1步。至少需要多少步,得到一个逆方向的1……n的圈。
分两半,使用冒泡排序,排成逆序的交换次数之和即为结果。
AC_CODE
int f(int n){
return n*(n - 1)/2;
}
int main(){
int n , t;
cin >> t;
...
分类:
其他好文 时间:
2014-05-06 23:15:55
阅读次数:
301
插入排序(Insertion Sort),选择排序(Selection
Sort),冒泡排序和快速排序是我们经常会用到的排序算法。下面是这几种算法的基本思想和相对应的PHP实现代码。插入排序(Insertion
Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文...
分类:
Web程序 时间:
2014-05-05 12:48:01
阅读次数:
478
前两篇文章中介绍了选择排序和插入排序,今天我们继续往下来介绍其他的排序算法,介绍交换排序中的冒泡排序和快速排序。...
分类:
其他好文 时间:
2014-05-04 17:45:18
阅读次数:
270
原理冒泡排序(Bubble
Sort),又被称为气泡排序或泡沫排序。它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾!
采用相同的方法再次遍历时,第二大的元素就...
分类:
其他好文 时间:
2014-05-04 10:13:02
阅读次数:
197
http://algs4.cs.princeton.edu/21elementary/排序算法分析:比较(Compare),交换(Exchange),如果没有使用选择排序:首先,找到最小的元素然后和第一个数做交换,然后在剩下的元素里找最小的,和第二个数做交换,一直下去。选择排序用了:
~N2/2 次...
分类:
其他好文 时间:
2014-05-04 09:59:02
阅读次数:
355