c 中各種陣列排序的方法

2021-10-12 10:23:03 字數 1353 閱讀 6773

1.第一種:我們最熟悉的氣泡排序法

定義雙層迴圈,依次遍歷(時間複雜度為n2,空間複雜度為n2)

for

(int j =

0; j < arr.length -

1; j++)}

}for

(int i =

0; i < arr.length; i++

)

2.思路:依次遍歷陣列,每遍歷到乙個元素時,先假定該元素為該輪的最小數,然後再通過遍歷該元素後面的每個元素,並與最小數進行比大小,更小的為最小數,將最小數的元素小標換到下標為i處

核心思路和氣泡排序相似 時間和空間複雜度都為n^2;

int temp =0;

for(

int i =

0; i < arr.length -

1; i++)}

temp = arr[i]

; arr[i]

= arr[minindex]

; arr[minindex]

= temp;

}

3.插入排序法:

思路:首先使陣列中最開始的元素作為已經排序好的陣列元素,將原先陣列中的每乙個元素都與排序好的元素從右往左比較,當碰到小於等於該元素的,將這個元素插入到當前位置。

}}4.希爾排序法(在插入排序的方法上進行優化,減少比較次數)

原理:每隔整數sp個數進行排序,即組內有序,當sp為1時,進行於類似插入排序,最終構造成有序陣列(假定相隔sp個單位的元素為一組,先進行組內排序。然後掃瞄所有組)

int sp = arr.length /2;

while

(sp >=1)

arr[j]

= temp;

//將判斷前利用中間變數記錄下來的值賦予給間隔後的值}}

sp /=2

;//不斷縮小間隔距離

}

5.快速排序法(利用由clr提供的演算法自動公升序排序)

array.

sort

(arr)

;//由clr提供的演算法

for(

int i =

0; i < arr.length; i++

)

陣列練習 各種陣列方法的使用

方法都是基礎,學習一下 的工整 一開始看到bs1 噫,這是什麼鬼,我頓了一下,細看下句尾不是分號而是冒號,三元運算 只是平時像這樣長句的話,一般都用if else 加 而此作者把?號和 號寫在句尾很明了 還有一點是三元運算中間都是用的逗號表示式,而我平時都是的分號,逗號表示式的一般形式是 表示式1,...

C 各種排序方法

c c 實現直接插入排序 includeusing namespace std int main int k sizeof a sizeof a 0 int j for int i 1 i 0 a j temp j a j 1 temp 此處就是a j 1 temp for int f 0 f歸併排...

C 中各種資料型別轉換的方法的類

各種資料型別轉換方法的類 public class gf convert char陣列 轉換 字串 public static string chararray2string char in str byte陣列 轉換 字串 public static string bytearray2string...