1. 程式人生 > >氣泡排序法實現數字從大到小排序

氣泡排序法實現數字從大到小排序

1、氣泡排序是非常常用的排序方法,其思想是:先選定第一個數字為最小(最大)再對數字兩兩進行比較,得到兩者之間的最小(最大)值。具體程式碼實現如下:
#include
#include <time.h>
using namespace std;

void srandData(int *, int );//產生隨機數的函式
void bubbleSort(int *, int );//氣泡排序具體實現函式
void swap(int *, int *);//兩個數字實現交換的函式
void display(int *, int );//在螢幕輸出結果函式

int main()
{
const int N = 10;//定義常數
int arr[N];//定義陣列

srandData(arr, N);
bubbleSort(arr, N);
display(arr, N);

return 0;

}

void srandData(int *a, int n)
{
srand(time(NULL));

for(int i = 0; i < n; i++)
{
	a[i] = rand() % 50;//取50以下的數字
	cout << a[i] << " ";
}

cout << endl;

}

void swap(int *b, int *c)
{

int temp = *c;
*c = *b;
*b = temp;

}

void bubbleSort(int *a, int n)
{

for(int i = 0; i < n; i++)
{
	for(int j = 0; j < n - i - 1; j++)
	{
		if(a[j] < a[j + 1])
		{
			swap(&a[j], &a[j + 1]);//兩者交換
		}
	}
}

}
void display(int *d, int n)
{
for(int i = 0; i < n; i++)
{
cout << d[i] << " ";
}
cout << endl;
}

相關推薦

氣泡排序實現數字大到小排序

1、氣泡排序是非常常用的排序方法,其思想是:先選定第一個數字為最小(最大)再對數字兩兩進行比較,得到兩者之間的最小(最大)值。具體程式碼實現如下: #include #include <time.h> using namespace std; vo

設計一個包含一個interface,三個class的Java 程式,用於完成陣列排序排序任務。其中interface中包含一個sort() 方法。第一個class使用氣泡排序實現interface的

題目:設計一個包含一個interface,三個class的Java 程式,用於完成陣列排序排序任務。其中interface中包含一個sort() 方法。第一個class使用氣泡排序法實現interface的sort()方法;第二個class使用選擇排序法實現interface的sort()方法;

js陣列內數字大小排序實現函式

正常氣泡排序: function evlabc(a) { //排序大小 var i = j = t = 0; for (i = 0; i < a.length; i++) { for (j = 0; j < a.length; j++) {

js數組內數字大小排序實現函數

當前 ole col 對數 span class length pan href 正常冒泡排序: function evlabc(a) { //排序大小 var i = j = t = 0; for (i = 0; i < a.length;

三種排序的練習題(桶排序氣泡排序,快速排序

小哼買書的三種解法 題目:要登記買書的同學,人數小於100,每個人報一個ISBN碼,範圍在1~1000;去掉重複的, 並將ISBN碼從小大排列 1、桶排序,時間複雜的都為O(n+m),佔空間大

sorted 與 sort的區別 正向排序 reverse()列表反向排序 與列表數字倒序排序

ever pre 倒序 rev 所有 sorted 序列 字典 有效 >>> a = [1,3,6,7,4] >>> >>> sorted(a) [1, 3, 4, 6, 7] >>> >&g

睡眠排序-一個不準確的排序方法

今天看到一個非常玄奇的排序方法,大致上類似於桶排序,但是不是特別可靠,就是睡眠排序法,額, 簡單的程式碼如下: from time import sleep items = [2, 4, 10, 2, 1, 7] # 睡眠排序演算法 def sleep_sort(i): sle

陣列——插入排序(對隨機數進行排序

class InsertSort{ //插入排序法 public void sort(int array[]){ for(int i=1; i<array.length; i++){ int insertVal = array[i]; int index = i-1; while(in

Java 實現氣泡排序對陣列進行排序

氣泡排序是交換排序中的一種簡單的排序方法。它的基本思想是對所有相鄰記錄的關鍵字值進行比較,如果是逆序(a[j]>a[j+1]),則將其交換,最終達到有序化。  public class BubbleSort { public void sortArray() { int

氣泡排序-Java實現

public static void bubbleSort(int[] a) { int temp; for (int i = 0; i < a.length; i++) { for (int j = 0; j < a.length - 1; j++) { if

Java中的陣列實現氣泡排序

/** * 不使用Arrays的sort方法來排序無規則陣列; * * */ public class MaoPaoDemo { public static void main(String[] args) { int [] arrs = {9,5,8,10,

用python實現選擇排序氣泡排序、插入排序

氣泡排序法 l = [10, 1, 18, 30, 23, 12, 7, 5, 18, 17] for n in range(len(l)-1): for i in range(len(l)-n-1): if l[i] > l[i+1]:

Java常用的八種排序演算法與程式碼實現(一):氣泡排序、插入排序、選擇排序

這三種排序演算法適合小規模資料排序 ---   共同點:基於比較,時間複雜度均為O(n2),空間複雜度均為O(1)(原地排序演算法)   不同點:插入排序和氣泡排序是穩定的排序演算法,選擇排序不是 ---   穩定排序演算法:可以保持數值相等的兩個物件,在排序之

對多個字串使用氣泡排序的python實現

今天在上資料結構與演算法課的時候,老師突擊測試,讓我們用氣泡排序演算法實現對多個字串的降排序,平常 老師講課都用C++,但我沒學過,而之前學過的C語言太久沒用,也忘得差不多了,迫不得已,拿起了最近在學習的 Python試水。當時想網路借鑑一下別人的程式碼,但

氣泡排序&定向氣泡排序的Python實現

氣泡排序法 氣泡排序法:每輪對相鄰的兩者進行比較,若順序不對,則進行位置互換,每輪都將使每輪的 最後一位是該輪的大數。 比如在數列:[71, 1, 14, 78, 75, 38, 10, 49, 40, 95] 第一輪交換:71>1 ==> [1, 71, 14, 78, 75, 3

氣泡排序(BubbleSort)——交換類排序(java實現)

氣泡排序法 從陣列的第一個元素arr[0]開始,兩兩比較arr[0]與arr[0+1],如果前面的數大於後面的數(arr[i]>arr[i+1]),那麼交換兩個元素的位置,把大的數往後移動。這樣

java實現氣泡排序

 一、氣泡排序法        氣泡排序法的比較方式由第一個元素開始,比較相鄰大小,若大小順序有誤,則對調後再進行下一次元素的比較。如此掃描過一次之後就可確保最後一個元素是位於正確的順序,接著再逐步進行第二次掃描,直到完成所有元素的排序關係為止。氣泡排序是穩定排序法。 二、

1、控制檯輸入5個數,用氣泡排序對它們排序,再輸出。

#include<iostream.h> void main(){  int i,j,k,t; int a[5];  cout<<"請輸入5個數:"<<endl;  for(i=0;i<5;i++) cin>>a[i];

數字排序問題(逆序,順序)(氣泡排序,選擇排序

應用冒泡法發按逆序排列 #include <iostream> using namespace std; int main() { int a[11]= {2,5,2,4,3,8,

經典的氣泡排序 JAVA實現

publicclass BubbleSort { /** *@paramargs *@authorwu,yaowen*@paramargs */ //initialize the array by Math.random() publicint[] initArray(int arrLen){