之前看到一个题目,大概是:有一个长度为n的数组,数组内的元素取值范围为0到m,且不相等,要求元素经过n次移动后使数组有序(即算法的复杂度为O(n))。看到题目后想了快速排序和归并排序发现并不能满足题目要求,直到有次看书有看到了桶排序然后豁然开朗,所以决定把这些排序算法再写一遍,加深记忆。约定:之后的...
分类:
其他好文 时间:
2014-05-09 10:52:49
阅读次数:
333
#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
冒泡排序: 设数组长为N。以升序为例。1
比较相邻的2个前后的数据,如果前面数据大于后面的数据,则2个数据交换2
这样对数组的第0个数据到第N-1个数据进行遍历,则最大的数据会沉到数组的第N-1个位置。3 N = N-1,如果N != 0 就执行第二步。1 void
Bubble_Sort( in....
分类:
其他好文 时间:
2014-05-08 05:49:27
阅读次数:
350
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
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