氣泡排序法實現數字從大到小排序
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){