選擇排序——C語言程式碼
介紹選擇排序
下面是我在網上找的示例圖,便於更好地理解選擇排序
通過這個圖我們明白K只是一個標記,它標記的是比較中 小的數。我們第一輪我們可以找到所有數中最小的數,然後讓它和處於第一位的數進行位置交換,第二輪比較時 ,第一輪找出的最小數不在參加比較,然後我們可以找出剩下數中最小的數,之後的每輪同理。
下面大家看一下我的程式碼
首先要明白
for(j=i+1;j<=9;j++)
{
if(a[k]>a[j])
{
k=j;
}
}
這個for迴圈完成後才會進行下面的這個if交換
if(k!=i)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
然後進行第一個for,第二個for,第一個if,接著第二個for完成後,進行第二個if判斷,判斷完之後進行第一個for
這就是迴圈的步驟
如有錯誤,歡迎指正
相關推薦
選擇排序——C語言程式碼
介紹選擇排序下面是我在網上找的示例圖,便於更好地理解選擇排序通過這個圖我們明白K只是一個標記,它標記的是比較中 小的數。我們第一輪我們可以找到所有數中最小的數,然後讓它和處於第一位的數進行位置交換,第二輪比較時 ,第一輪找出的最小數不在參加比較,然後我們可以找出剩下數中最小的
歸併排序C語言程式碼
#include<stdio.h> #include<stdlib.h> void merge(int *A,int p,int q,int r);//合併 void merg
堆排序C語言程式碼
#include<stdio.h> int heap_size; //建堆時參與的元素個數 int parent(int i); //三個節點關係函式 i
【初探】“ 選擇排序 ” ——C++程式碼實現
選擇排序(Selection sort)是一種簡單直觀的排序演算法。無論什麼資料進去都是 O(n²) 的時間複雜度。所以用到它的時候,資料規模越小越好。唯一的好處可能就是不佔用額外的記憶體空間了吧。 簡單排序處理流程 首先在未排序序列中找到最小
插入排序C語言實現程式碼
<span style="font-size:18px;">#include<stdio.h> void main() { int A[6]={5,2,4,6,1,3};
排序演算法之歸併排序及其C語言程式碼實現
概述:額,還是舉個栗子吧: 初始序列[ 98 , 1 , 23 , 4 , 2 , 9 , 8 , 18] //第一步[ 98 | 1 | 23 | 4 | 2 | 9 | 8 | 18] //
排序演算法之插入排序及其C語言程式碼實現
概述 一個插入排序是另一種簡單排序,它的思路是:每次從未排好的序列中選出第一個元素插入到已排好的序列中。它的演算法步驟可以大致歸納如下: 1. 從未排好的序列中拿出首元素,並把它賦值給temp變數; 2. 從排好的序列中,依次與temp進行比較,如果元素比temp大,則將元素
快速排序的分析及c語言程式碼
快速排序(Quicksort)是對氣泡排序的一種改進。它的基本思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。
排序演算法之堆排序及其C語言程式碼實現
概述:堆排,實際上是一種選擇排序,只不過採用了堆這種資料結構,利用這種資料結構,使得在每次查詢最大元素時,直接選取堆頂元素,從而時間大大縮短,相對簡單選擇排序演算法來說,比較高效。 堆排序演算法可描述
排序演算法:幾種常見的排序演算法的C語言程式碼
void quick_sort(int *ptr, int left, int right) { int i, j; if(left >= right) return; j = left; for(i=left+1; i <= right; i++) if(*(ptr+i)
選擇排序——C實現
return 最大 n-1 spa 工作 cnblogs ret clu 輸出 選擇排序: 選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩余未排序元素中繼續
排序(3)---------冒泡排序(C語言實現)
std 強調 tracking i++ oid printf pre rand() 執行 說到冒泡排序,大一的時候第一次學習這個排序算法,可能大家不知道,“冒泡”在我說的方言裏面是吹牛逼的意思。所以就認為這個排序算法特吹牛逼有木有。 相信大家對全部的排
排序算法——選擇排序(js語言實現)
col log () color chan 算法 lec 選擇 代碼 選擇排序:顧名思義選擇,選擇排序屬於O(N^2)的排序算法,意思就是選擇數組中的最小的拿出來放在第一位,然後再剩下的數裏面,選擇最小的,排在第二位,以此類推。 例如:8 3 4 5 6 2 1
CRC32 C語言程式碼 和 JAVA程式碼
C語言如下: uint32_t crc32_compute(uint8_t const * p_data, uint32_t size){ uint32_t crc; crc = 0xFFFFFFFF; for (uin
CRC8 C語言程式碼 和 JAVA 程式碼
crc8 從語言程式碼如下: unsigned char const crc8_tab[256] = { 0x00,0x07,0x0E,0x09,0x1C,0x1B,0x12,0x15,0x38,0x3F,0x36,0x
如何在ubuntu中寫一個簡單的C語言程式碼並編譯執行
首先需要安裝一個編譯器 因為筆者也是剛剛開始學習ubuntu所以不知道各個編譯器之間的區別,筆者所用的是gcc就簡單介紹一下gcc的安裝方法吧。 方法一: 開啟控制檯輸入以下程式碼: sudo apt-get build-dep gcc; sudo apt-get bui
快速傅立葉變換FFT的學習筆記一:C語言程式碼的簡單實現
快速傅立葉變換FFT的學習筆記一:C語言程式碼的簡單實現 fft.c #include "math.h" #include "fft.h" void conjugate_complex(int n,complex in[],complex out[]) { int i = 0
GSM A5/1演算法C語言程式碼實現和分析
介紹 全球超過200個國家和地區超過10億人正在使用GSM電話。對中國使用者來說,GSM就是移動和聯通的2g模式。 在1982年A5首次提出時,人們認為A5 / 1金鑰長度要128位,但最終確定的結果是64位金鑰(政府可以使用暴力破解算出)。很可能是政府的壓力迫使金鑰位數縮
c語言程式碼比較18bb/1
kata1: 我的程式碼: 別人的程式碼1: 用數學公式實現 第n個數是1+2+3+4…+n = (1+n)n/2; 進而結果是對求和的求和 對(1+n)n/2遍歷1 to n; 進而sum = 1/2 * (12 + 23 +34+…+nn+1) 即 sum = 1/
c語言程式碼比較18bb/16
kata: 比如說: dig_pow(89, 1) should return 1 since 8¹ + 9² = 89 = 89 * 1 dig_pow(92, 1) should return -1 since there is no k such as 9¹ + 2² equal