******************************= 部落格點滴積累,部分話語和知識點**於網路,感謝網路資源的提供者*****=
1 氣泡排序
原理簡述:氣泡排序,大泡泡在底下,小泡泡在上面,假設遞增排序,即小數在前面,大數在後面。每一次比較相鄰的兩個數,第乙個數大於第二個數,就交換順序,一次比較到陣列結尾,最後乙個就是最大的數,再一次從頭開始比較,比較到倒數第二個數,最後乙個數不參與比較,以此一直比較,到沒有資料交換為止,此時排序完成。
2 插入排序void bubblesort(int arr,int
len)}}
}
原理簡述:插入排序,插入,即向有序的序列先比較再插入,首先假設陣列首元素有序,取出第二個元素,與第乙個比較,比第乙個元素大,就交換順序,接著取第三個元素,先與第二個元素,比第二個大,位置不動,比第二個小,第二個元素換到第三個元素的位置,再和第乙個比較,比第第乙個大,就放到第二個元素位置,比第乙個元素小,就將乙個元素,放到第二個元素的位置,以此類推。
3 選擇排序void insertsort(int arr,int
len)
arr[k+1] = tmp;
}}
原理簡述:選擇排序,即在無序的陣列中找個最小的放在第一位,接下來,在剩餘的數中,再找乙個最小的數,放到第二位,以此類推。
4 希爾排序void selectsort(int arr,int len)
}arr[i] = min;
}}
原理簡述:希爾排序,實質是分組插入排序,一般情況,假設資料8個元素,先分為(step = n/2)四組,(1,5),(2,6),(3,7),(4,8),組內先比較 ,比較交換後,再分為(step =step /2)兩組,(1,3,5,7),(2,4,6,8),組內先比較排序交換,再分為(step =step /2)一組,排序後,就完成排序了,此時step =step/2 = 0。
5 快速排序void shellsort(int arr,int
len)
arr[k+step] = tmp;}}
}}
原理簡述:快速排序,先選擇乙個元素(一般首元素或尾元素),假設是首元素,首先取出首元素快取,首元素位置為空,定義兩個變數low,high,low從最小下標遞增,high最大下標遞減,第一步,看high下標的這個元素,是否大於首元素快取,大於則high–,繼續判斷直到不大於則將這個元素放到首元素的位置,此時,high下標的位置為空,比較low下標元素,小於快取則low++,,繼續判斷直到不小於則將這個元素放到high下標元素的位置,此時,low下標的位置為空,以此迴圈,直到low不小於high為止,此時low位置放首元素的快取,low位置最終就是這個元素排序的位置,然後以low位置為分界線分為兩組,再做如上步驟。
void quicksort(int arr,int
left ,int
right)
arr[low] =arr[high];
while((low < high) && (key > arr[low]))
arr[high] = arr[low];
}arr[low] = key;
quicksort(arr,left,low-1);
quicksort(arr,low+1,right );
}}
堆排序比較麻煩一點,需要理解的知識點較多,下次部落格再詳細寫吧。void merge(int sourcearr,int temparr,int startindex,int midindex,int endindex)
while(i!=midindex+1)
temparr[k++] = sourcearr[i++];
while(j!=endindex+1)
temparr[k++] = sourcearr[j++];
for(i=startindex;i<=endindex;i++)
sourcearr[i] = temparr[i];
}void mergesort(int sourcearr,int temparr,int startindex,int endindex)
}
堆排序原理簡述及C實現例項
1,簡述 堆結構是一種陣列結構,它可以被視為一棵完全二叉樹。屬性 元素個數 length a 樹的根為a 1 給定某個節點下標i,其父節點parent i 左兒子left i 右兒子right i 存在以一關係 parent i i 2 left i 2i right i 2i 1 堆應滿足以下性質...
幾種常見排序演算法原理 C語言實現
以下各法均以從小到大排序為例,定義len為陣列array的長度 原理 比較相鄰元素的大小,對於每次迴圈,按排序的規則把最值移向陣列的一端,同時迴圈次數依次減少。c 實現 1.原理 先在未排序的陣列中找出最值,通過交換將其放在陣列第一位,然後再從剩餘的未排序陣列中找到另乙個最值,將其放在已排序陣列的末...
排序演算法(C語言實現)
本文共介紹了7種排序演算法 參考文章 1.1 基本思想 依次向後兩兩相鄰比較,大的向後移 1.2 示例 void bubblesort int a,int n 2.1 基本思想 從無序佇列中選擇最小值,放置到有序佇列的末尾 2.2 示例 void selectsort int a,int n a j...