bubble_sort

冒泡排序法:

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4
 5 int main(){
 6     int n;
 7     cin >> n;
 8     vector<int> a(n);
 9     for(int a_i = 0;a_i < n;a_i++){
10        cin >> a[a_i];
11     }
12     int numberOfSwaps = 0;
13     for (int i = 0; i < n ; i++) //冒泡排序
14         for (int j = 0; j < n - 1 - i ; j++) {
15             if (a[j] > a[j + 1]) {
16                 swap(a[j], a[j + 1]);
17                 numberOfSwaps++;
18             }
19     }
20     cout << "Array is sorted in " << numberOfSwaps << " swaps." << endl;
21     cout << "First Element: " << a[0] << endl;
22     cout << "Last Element: " << a[n-1] << endl;
23     return 0;
24 }
时间: 2024-08-01 07:02:07

bubble_sort的相关文章

冒泡排序(bubble_sort)——Python实现

# 冒泡排序 # 作用:对给出的n个顺序不定的数进行排序 # 输入:任意数组A # 输出:按顺序排列的数组A # 冒泡排序过程 # 第一趟:以第一个数为基准,从最后一位数开始,依次与它比较, #               若大于它,则交换,若小于它,则继续判断前一个数 #               完成一趟后,这个基准数(即第一个数)是所有数里最大的 # 第二趟:以第二个数为基准,从最后一位数开始,依次与它比较, #               若大于它,则交换,若小于它,则继续判断前一个数

冒泡排序Bubble_Sort

基本原理:对于冒泡排序来说,基本思想是从第一个元素开始,数组中的数据依次和它后面相邻的数据进行比较,即1和2比较,2和3比较,a和a+1比较,直到倒数第二位和倒数第一位的比较,如果顺序不对就进行交换,这样一次下来最大的元素会被放置在最后的位置上[以升序为例,这里是理解冒泡排序的重点.]接着,在进行一次这样的排序,只不过到倒数第二就截止.最后呢就剩第一位置的元素和第二位置的元素进行比较.这个应该比较好理解,就不上图了吧.不过如果有足够的时间,我还是愿意把图补上的. 时间复杂度:显然是O(n^2)

经典排序算法 - 冒泡排序Bubble sort

 原文出自于 http://www.cnblogs.com/kkun/archive/2011/11/23/bubble_sort.html 经典排序算法 - 冒泡排序Bubble sort 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子 例子为从小到大排序, 原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 | 第一趟排序(外循环) 第

算法 排序lowB三人组 冒泡排序 选择排序 插入排序

参考博客:基于python的七种经典排序算法   [经典排序算法][集锦]     经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性: 经过某种排序后,如果两个记录序号同等,且两者在原无序记录中的先后秩序依然保持不变,则称所使用的排序方法是稳定的,反之是不稳定

常见试题和算法

一.常见字符串和文件操作 1.PHP翻转中文字符串 1 2 3 4 5 6 7 8 9 function reverse($str){ $r = array(); for($i=0; $i<mb_strlen($str); $i++){ $r[] = mb_substr($str, $i, 1, 'UTF-8'); } return implode(array_reverse($r)); } echo reverse('www.phpha.com天涯PHP博客'); //结果:'客博PHP涯天m

python 算法中的--冒泡排序

#列表每两个相邻的数,如果前面的比后面的大,那么就交换这两个数# shuffle() 方法将序列的所有元素随机排序. import random def bubble_sort(li): for i in range(len(li)-1): #i代表趟 for j in range(len(li)-i-1): #j列表 if li[j]>li[j+1]: li[j],li[j+1]=li[j+1],li[j] data=list(range(5)) random.shuffle(data) #打

算法学习#09--用简单的思维理解选择、插入、冒泡和希尔排序

选择排序 1.原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 2.特点 ①运行时间与输入无关. 无论输入初始状态如何,是否有序,都需要遍历数组来找出最小的元素.其他算法则更善于利用输入的初始状态来优化时间. ②数据移动次数最小. 如果某个元素位于正确的最终位置上,则它不会被移动.选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进

面试题---各种排序。插入,选择,冒泡,shell,堆,快排

#include<iostream> #include<string> #include<vector> using namespace std; void swap(int a[], int i, int j); void insert_sort(int a[], int n) { for (int i = 1; i < n; i++) { int temp = a[i], j = i; while (j&&temp < a[j - 1])

一天一个Java基础——排序

一天一个系列的第一篇,看看自己能否坚持下去,加油! 冒泡排序与快速排序 冒泡排序,人生中第一次面试,nice的考官问我能不能默写下来 快速排序,感觉高大上,分治思想,必学 1 package One; 2 3 public class Test_sort { 4 5 public static void main(String[] args) { 6 int[] a = { 2, 9, 5, 4, 8, 1 }; 7 // sort(bubble_sort); 8 quick_sort(a, 0