摘要:效果圖冒泡排序冒泡排序是一種排序算法就是把數字小的和數字大的進行位置的調換部分的公司招聘也拿來當做面試題為什么叫冒泡排序冒泡排序就是和水里面產生的氣泡一樣從小到大的慢慢的升起所以就叫冒泡排序完整代碼排序
效果圖:
冒泡排序:
冒泡排序 是一種 排序 算法 就是把 數字 小的和 數字 大的進行位置的調換 部分的公司招聘 也拿來當做 面試題 …
為什么叫冒泡排序?
冒泡排序就是 和水里面產生的氣泡一樣從小到大的慢慢的升起 所以就叫冒泡排序
完整代碼:
排序
int[] arr = {12,18,4,6,80,10,14,12,66,19}; for (int i = 0; i < arr.Length; i++) { for (int j=0;j<arr.Length-1;j++) { //大于號就是 大 到 小 if (arr[i] < arr[j]) { int number = arr[i]; arr[i] = arr[j]; arr[j] = number; } } } foreach (int look in arr) { Console.Write(look+" "); } Console.ReadKey();
定義進行排序的數組:
升序: 小的數字到大的數字
降序: 大的 到 小的
int[] arr = {12,18,4,6,80,10,14,12,66,19};
可以看見現在的順序是非常的凌亂的
使用循環體進行換位置:
for (int i = 0; i < arr.Length; i++) { for (int j=0;j<arr.Length-1;j++) { if (arr[i] < arr[j]) { int number = arr[i]; arr[i] = arr[j]; arr[j] = number; } } }
因為要進行 兩個 元素的 對比 所以需要使用 兩個循環體 進行 元素之間的對比
第一個循環跑一次 而內循環就需要跑 10次(根據元素的個數決定)
if (arr[i] < arr[j]) {int number = arr[i];arr[i] = arr[j]; arr[j] = number;
如果[i]號元素小于[j]號 兩個元素之間就進行換位置 其中"number"是中間變量 存儲[i]值
當然如果你想通過 不使用第三方 變量 進行交換 也可以這樣
if (arr[i] < arr[j]) { arr[i] = arr[i]+arr[j]; arr[j] = arr[i]-arr[j]; arr[i] = arr[i] - arr[j]; }
額外知識:
不使用第三方 變量 進行 兩個 變量的交換
int a =10;int b =20; a =a+b; b =a+b; a=a-b;
這樣也可以達到一模一樣的效果 原理還是那樣 只是變的復雜了一點
但是不建議這里寫 因為…簡單的都變復雜化了
假設這是第一次循環:
i的每一個元素 j 都會一個個對比
上面演示的是 升序
降序:
//變成大于號if (arr[i] > arr[j]) {int number = arr[i]; arr[i] = arr[j]; arr[j] = number; }
變動一個符號即可
當然如果你是初學者,看不懂 雙重 循環體 也可以使用Arrar的靜態方法
進行
int[] arr = {12,18,4,6,80,10,14,12,66,19}; Array.Sort(arr); //一建對數組 進行升序的排序
效果一模一樣
這個靜態方法 提供了 升序的排序 但他沒有提供 降序的方法
不過可以用他的另外一個方法 進行數組反轉的 來達到一樣的效果
int[] arr = {12,18,4,6,80,10,14,12,66,19};Array.Sort(arr); //升序排序 Array.Reverse(arr); //數祖反轉達到 降序效果
數組最小值:
求一個數組里面的 最小 一位數
比較簡單
int[] arr = {-12,18,4,26,100,10,14,12,66,-19}; int max = 0; for (int i = 0; i < arr.Length; i++) { //大于號就是 最大值 if (arr[i] <max) { max = arr[i]; } } Console.WriteLine(max); Console.ReadKey();
平均值:
整數/個數字
int[] arr = {-12,18,4,26,100,10,14,12,66,-19}; int max = 0; for (int i = 0; i < arr.Length; i++) { max +=arr[i]; } Console.WriteLine(max/arr.Length-1); Console.ReadKey();
練習題:
生成10個隨機數 進行 升序排序 算出 最大值 最小值 平均值
答案:
Random r = new Random(); int[] arr = new int[10]; int average = 0; for (int i = 0; i < arr.Length; i++) { arr[i] = r.Next(-10,100); } for (int i = 0; i < arr.Length; i++) { average += arr[i]; for (int j = 0; j < arr.Length - 1; j++) { if (arr[i] < arr[j]) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } } } foreach (int number in arr) { Console.Write(number + " "); } Console.WriteLine("/n最小值是:" + arr[0]); Console.WriteLine("最大值是:" + arr[arr.Length-1]); Console.WriteLine("平均值是:" + (average / arr.Length - 1)); Console.ReadKey();
純手打,點個贊唄~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125647.html
摘要:良好的排序算法具有進行最少的比較和交換的特征。冒泡排序是一個基于比較的排序算法,被認為是效率最低的排序算法之一。現在讓我們使用實現冒泡排序算法。插入排序到目前為止,我們已經看到了兩種基于比較的排序算法。 預警 本文適合對于排序算法不太了解的新手同學觀看,大佬直接忽略即可。因為考慮到連貫性,所以篇幅較長。老鐵們看完需要大概一個小時,但是從入門到完全理解可能需要10個小時(哈哈哈,以我自己...
摘要:最差情況輸入數組按降序排列。平均情況穩定性穩定希爾排序排序法是對相鄰指定距離稱為增量的元素進行比較,并不斷把增量縮小至,完成排序。若將兩個有序表合并成一個有序表,稱為二路歸并。 冒泡排序 從數組中第一個數開始,依次遍歷數組中的每一個數,通過相鄰比較交換,每一輪循環下來找出剩余未排序數的中的最大數并冒泡至數列的頂端。 function bubbleSort(arr) { for (v...
摘要:代碼實現六堆排序算法簡介堆排序是指利用堆這種數據結構所設計的一種排序算法。九計數排序算法簡介計數排序是一種穩定的排序算法。計數排序不是比較排序,排序的速度快于任何比較排序算法。 贊助我以寫出更好的文章,give me a cup of coffee? 2017最新最全前端面試題 1、插入排序 1)算法簡介 插入排序(Insertion-Sort)的算法描述是一種簡單直觀的排序算法。它...
摘要:目錄常見的八種排序常見的八種排序直接插入排序直接插入排序希爾排序希爾排序直接選擇排序直接選擇排序堆排序堆排序冒泡排序冒泡排序快速排序快速排序版本版本挖坑法挖坑法前后指針版前后指針版快速排序代碼 目錄 常見的八種排序 直接插入排序 希爾排序 直接選擇排序 堆排序 冒泡排序? 快速排序 hoar...
閱讀 3733·2023-01-11 11:02
閱讀 4243·2023-01-11 11:02
閱讀 3049·2023-01-11 11:02
閱讀 5180·2023-01-11 11:02
閱讀 4733·2023-01-11 11:02
閱讀 5533·2023-01-11 11:02
閱讀 5312·2023-01-11 11:02
閱讀 3986·2023-01-11 11:02