常見的幾種排序 氣泡排序和插入排序

2021-09-25 10:21:29 字數 878 閱讀 7656

氣泡排序

思想:

氣泡排序的思想比較簡單,就是兩兩資料進行比較,大的往後走,每迴圈一次就確定乙個數的位置,就猶如扔石頭,越重的石頭落入海底越深,上圖中第一次迴圈8的位置就確定了,所以下一次迴圈的個數就可以減一

具體**實現:

void bubblesort(int *arr,int len)}}

}

插入排序

思想:插入排序的主要思想分為三步:第一先找到位置,第二挪動位置,第三插入資料;具體過程如下圖:

定義i和j指標,將i指向的資料放入tmp中,比較j指標的資料和tmp的大小,如果j指向的資料小於tmp,就把j指標減一,若是一直小於tmp就一直比較到j為0時停止,否則就找到位置,挪動j到i之間資料的位置,在將tmp的資料插入即可

具體**實現如下:

void insertsort(int *arr,int len)

}for(k = i-1;k>=j;k--)

}arr[j] = tmp;

}

上述**根據初始思路編寫,但當需要插入的位置為0號下標時就會出錯,例 1 2 0,當j=0時迴圈繼續,接下來j就會減一,那麼j的位置就會變成-1,越界,所以提倡使用下面的**:

void insert_sort(int * arr,int len)

else}}

arr[j+1] = tmp;

}

幾種常見的排序(插入排序)

插入排序 insertsort 的執 況,假定這個陣列的序是排好的,然後從頭往後,如果有數比當前外層元素的值大,則將這個數的位置往後挪,直到當前外層元素的值大於或等於它前面的位置為止.演算法在排完前k個數之後,可以保證a 1 k 是區域性有序的,保證了插入過程的正確性.比較次數n n 1 2 移動次...

Day7 排序 插入排序和氣泡排序

常用的排序 氣泡排序 插入排序 選擇排序 歸併排序 快速排序 計數排序 基數排序 桶排序 冒泡 插入 選擇 o n 2 基於比較 快排 歸併 o nlogn 基於比較 桶 計數 基數 o n 如何分析乙個排序演算法?排序演算法的執行效率 a.最好情況 最壞情況和平均情況的時間複雜度 b.時間複雜度的...

PHP常用排序演算法 氣泡排序 快速排序 插入排序

氣泡排序 兩兩交換數值,最小的值在最左邊,就如最輕的氣泡在最上邊。對整列數兩兩交換一次,最小的數在最左邊,每次都能得乙個在剩下的數中的最小 的數,冒 出來的數組成乙個有序區間,剩下的值組成一無序區間,且有序區間中每一元素值都比無序區間的小。快速排序 基準數,左右二個陣列,遞迴呼叫,合併。插入排序 排...