void swap(int &a, int &b)
void showsortresult(int *array, int arraysize)
/*氣泡排序的原理:每次在無序佇列裡將相鄰兩個數依次進行比較,將小數調換到前面,逐次比較,
直至將最大的數移到最後。最將剩下的n-1個數繼續比較,將次大數移至倒數第二位。依此規律,直至比較結束。
冒泡最大放後排
*/void bubblesort(int *array, int arraysize)
showsortresult(array, arraysize);
}}/*
選擇排序的原理:每次在無序佇列中「選擇」出最小值,放到有序佇列的最後,並從無序佇列中去除該值。
選擇最小放前排
*/void selectionsort(int *array, int arraysize)
if (min != i)
swap(array[min], array[i]);
showsortresult(array, arraysize);
} }/*
插入排序的原理:始終定義第乙個元素為有序的,將元素逐個插入到有序排列之中,其特點是要不斷的
移動資料,空出乙個適當的位置,把待插入的元素放到裡面去。
1〉從第乙個元素開始,該元素可以認為已經被排序
2〉取出第乙個未排序元素存放在臨時變數temp中,在已經排序的元素序列中從後往前掃瞄,逐一比較
3〉如果temp小於已排序元素,將該元素移到下個位置
4〉重複步驟3〉,直到找到已排序的元素小於或者等於
*/void insertsort(int *array, int arraysize)
array[j+1] = temp; //將臨時變數放在j+1的位置上
}}int main()
; int arraylength = sizeof(testarray) / sizeof(int);
/*******************************************/
/* bubblesort */
/*******************************************/
//cout << "before sort :";
//showsortresult(testarray, arraylength);
////bubblesort(testarray, arraylength);
////cout << "after sort :";
//showsortresult(testarray, arraylength);
/*******************************************/
/* selectionsort */
/*******************************************/
//cout << "before sort :";
//showsortresult(testarray, arraylength);
//selectionsort(testarray, arraylength);
//cout << "after sort :";
//showsortresult(testarray, arraylength);
/*******************************************/
/* insertsort */
/*******************************************/
cout << "before sort :";
showsortresult(testarray, arraylength);
insertsort(testarray, arraylength);
cout << "after sort :";
showsortresult(testarray, arraylength);
system("pause");
return 0;
}
冒泡 選擇 插入排序演算法
1.氣泡排序 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數 也就是第一波冒泡完成 針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。...
java實現冒泡 選擇 插入排序演算法
package xiaoneiwang publicclasstest 假設第乙個數是乙個有序陣列 拿後面的每乙個數往這個陣列插入 int arr2 sort3 arr for int i arr2 插入排序發 假設前面是乙個已經排好的序列 從前面只有乙個開始 publicstaticint sor...
排序演算法 冒泡 選擇 插入排序
本文簡單總結一下三大排序演算法,如有不足,請多多提意見。簡述 從小到大排序,每次比較兩個元素,看他們的順序有沒有錯,如果錯了就換過來。a 比較abc.元素,如果第乙個比第二個大,則將兩個元素交換位置 bac.再依次將a和c進行比較。b 對每一對相鄰的元素做同樣的工作,從第一對到最後一對。這一次執行完...