演算法之簡單排序

2022-08-20 07:42:12 字數 1060 閱讀 1213

**示例:

/**

* 氣泡排序:

* 複雜度:

* 比較次數:n*(n-1)/2=o(n的平方)

* 移動次數:平均移動(n的平方/4),所以複雜度也為n*(n-1)/2=o(n的平方) */

public

void

bubblesort();

inttemp;

for(int i=0;i)}}

for(int i=0;i)}}

//列印

for(int i=0;i)

}/**

* 選擇排序:

* 複雜度:

* 比較次數:n*(n-1)/2,所以為o(n的平方)

* 移動次數:平均移動n/2,所以為o(n) */

public

void

selectsort();

intmin_value;

int min_index=0;

inttemp;

for(int i=0;i)

}temp=a[i];

a[i]=a[min_index];

a[min_index]=temp;

}//列印

for(int i=0;i)

}/**

* 插入排序:

* 複雜度:

* 最大比較次數:n*(n-1)/2,平均比較次數:n*(n-1)/4,,所以為o(n的平方),比氣泡排序和選擇排序少一半的比較時間

* 複製的次數大致等於比較的次數,然而一次複製的時間與一次交換的時間耗費不同。

* 對於隨機資料,這個演算法比氣泡排序快一倍,比選擇排序略快。 */

public

void

insertsort();

inttemp_i;

for(int i=1;i)

a[j]=temp_i;//

插入a[i]的值

break

; }}}

//列印

for(int i=0;i)

}

演算法 之 簡單排序

這裡介紹三種常用的排序演算法 氣泡排序 選擇排序 插入排序。1.氣泡排序 氣泡排序是一種簡單的排序,它通過元素的兩兩比較,不斷的將大的或小的元素向左或向右移動,通過這種方式來實現排序。如下面是實現由小到大的排序 外層迴圈out一開始為nelems 1,這代表元素的最大位置。內層迴圈從位置0和位置1的...

排序演算法之簡單排序

進入找工作倒計時狀態了,計畫好好複習一下資料結構和相關演算法,估計用兩天時間把見過的排序演算法整理下,首先看一下時間複雜度為o n2 的演算法。首先參考大話資料結構定義乙個鍊錶類 include define maxsize 1000 using namespace std class sqlist...

JS 排序演算法之簡單排序

目錄 function bubblesort ary 如果沒有發生交換 表明排序完成 直接退出排序 if exchange break return ary 效果示例 function straightinsertionsort ary while j 0 temp ary j 找到temp需要插入...