C 排序演算法

2021-10-02 13:45:48 字數 1653 閱讀 3085

n個數字來排隊,兩兩相比小靠前。

外層迴圈n-1,內層迴圈n-1-i。

int

list =

newint[8

];for(

int i =

0; i < list.length-

1; i++

)for

(int i =

0; i < list.length; i++

)

1.從左至右遍歷,找到最小(大)的元素,然後與第乙個元素交換。

2. 從剩餘未排序元素中繼續尋找最小(大)元素,然後與第二個元素進行交換。

3. 以此類推,直到所有元素均排序完畢。

public

static

int[

]selectionsort

(int

array)

// 交換元素

int temp = array[i]

; array[i]

= array[min]

; array[min]

= temp;

}return array;

}

1.從第乙個元素開始,該元素可以認為已經被排序

2.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄

3.如果該元素小於前面的元素(已排序),則依次與前面元素進行比較如果小於則交換,直到找到大於該元素的就則停止;

4.如果該元素大於前面的元素(已排序),則重複步驟2

5.重複步驟2~4 直到所有元素都排好序 。

public

static

int[

]insertsort

(int

array)

//如果大於,則不用繼續往前比較了,因為前面的元素已經排好序,比較大的大就是大的了。

else

break;}

}return array;

}

1.i =l; j = r; 將基準數x挖出形成第乙個坑a[i]

2.j–由後向前找比基準數小的數,找到後挖出此數填入前乙個坑a[i] 中

3.i++由前向後找比基準數大的數,找到後也挖出此數填到前乙個坑a[j] 中

4.再重複執行2,3二步,直到i==j,將基準數填入a[i] 中

public

static

int[

]quicksort

(int

array,

int left,

int right)

if(i < j)

// 從左往右找,找大於基準的數,如果該數小於基準,i++ 繼續找

while

(i < j && array[i]

< x)

if(i < j)

}// 退出時,i=j,將x填入該坑

array[i]

= x;

quicksort

(array, left, i -1)

;quicksort

(array, i +

1, right);}

return array;

}

C 排序演算法

最基本的 氣泡排序 c code using system namespace bubblesorter j public class mainclass bubblesorter sh new bubblesorter sh.sort iarrary for intm 0 m iarrary.le...

C 排序演算法

protected int bubbleup int array 氣泡排序 return array public int selectionsorter int list 選擇排序 int temp list min list min list i list i temp return list ...

C 演算法排序

不廢話,上 using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace 排序演算法 陣列 氣泡排序 選則排序 arra...