冒泡排序:n个数,经过n-1趟子排序完成的,第 i 趟子排序从第1个数至第 n-i 个数,若第i个数比后一个数大(则升序,小则降序)则交换两数。
分类:
其他好文 时间:
2014-09-19 15:22:45
阅读次数:
125
经典的7种排序算法 原理C++实现
排序是编程过程中经常遇到的操作,它在很大程度上影响了程序的执行效率。
7种常见的排序算法大致可以分为两类:第一类是低级排序算法,有选择排序、冒泡排序、插入排序;第二类是高级排序算法,有堆排序、排序树、归并排序、快速排序。下面就分别介绍一下这几种排序算法,并会给出c++的实现,实现代码均经过测试。
一、低级排序算法
1. 选择排序
排序过程:给定一个...
分类:
编程语言 时间:
2014-09-19 13:56:05
阅读次数:
336
冒泡排序算法的时间复杂度是什么?时间复杂度是O(n^2)。 1 #include "stdafx.h" 2 #include 3 using namespace std; 4 void Swap(int &a, int &b) 5 { 6 int temp = a; 7 a = b...
分类:
其他好文 时间:
2014-09-17 23:05:02
阅读次数:
184
冒泡排序 1: /* 因为冒泡是相邻交换, sign 标记着这次不用交换, 下次也不用交换. */ 2: #include 3: 4: int main(void) { 5: int sign = 1; 6: int a[10] = {1, 454, 634,34, 3, 3, 2343, 2343...
分类:
其他好文 时间:
2014-09-17 18:24:02
阅读次数:
318
今天大鹏哥跟大家一起学习下交换排序中的快速排序。
快速排序是对冒泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到真个序列有序。
快速排序基本步骤:
Step1、定义两个变量low和high,他们的初值分别为low和high,此外还有一个变量pivotkey。
...
分类:
其他好文 时间:
2014-09-17 16:50:14
阅读次数:
175
1.冒泡排序的时间复杂度是(A)?(简单)A.n^2 B.n logn C.2n D.2n+12.简述冒泡排序的过程?(中)答案: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3....
分类:
其他好文 时间:
2014-09-17 00:55:21
阅读次数:
290
private static void BubbleSort(int[] a,int n){ boolean flag = false; int temp; for (int i = 0; i i; j--) { if(a[j-1]>a[j]) { /*te...
分类:
编程语言 时间:
2014-09-16 23:39:01
阅读次数:
223
常见排序算法(冒泡、选择、插入、快速、归并C++实现)
#include
using namespace std;
// 冒泡排序
void bubbleSort (int data[], size_t size) {
for (size_t i = 0; i < size - 1; ++i) {
bool ordered = true;
for (size_t j = 0; j <...
分类:
编程语言 时间:
2014-09-16 22:09:41
阅读次数:
272
今天大鹏哥跟大家学习下交换排序中的冒泡排序。
为什么叫冒泡排序呢,因为在这种排序过程中越大的元素会经由交换慢慢”浮”到数列的顶端,故名冒泡排序。冒泡排序就是把小的元素往前调或者把大的元素往后调。
冒泡排序基本操作:
比较相邻的元素,如果第一个比第二个大,则交换他们两个。
Java实现如下:
...
分类:
其他好文 时间:
2014-09-16 17:30:10
阅读次数:
151
题目链接
题意:n个人坐成环形,相邻的两个可以交换位置,求最少交换次数使得序列相反。
思路:类似与冒泡排序,可以将环形序列拆成两个序列,分别进行冒泡。当n为奇数时,分为n/2与n/2 + 1,所以ans = (n / 2) * (n / 2 - 1) / 2 + (n / 2) * (n / 2 + 1) / 2,当n为偶数时,分为两个n/2, 所以ans = (n / 2...
分类:
其他好文 时间:
2014-09-15 19:30:19
阅读次数:
134