創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為河津企業(yè)提供專業(yè)的做網(wǎng)站、成都做網(wǎng)站,河津網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Java 中如何實(shí)現(xiàn)直接插入排序,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
直接插入排序(Insertion Sort)的基本思想是:每次將一個(gè)待排序的記錄,按其關(guān)鍵字大小插入到前面已經(jīng)排好序的子序列中的適當(dāng)位置,直到全部記錄插入完成為止。
設(shè)數(shù)組為a[0…n-1]。
1. 初始時(shí),a[0]自成1個(gè)有序區(qū),無序區(qū)為a[1..n-1]。令i=1
2. 將a[i]并入當(dāng)前的有序區(qū)a[0…i-1]中形成a[0…i]的有序區(qū)間。
3. i++并重復(fù)第二步直到i==n-1。排序完成。
下面給出嚴(yán)格按照定義書寫的代碼(由小到大排序):
void Insertsort1(int a[], int n) { int i, j, k; for (i = 1; i < n; i++) { //為a[i]在前面的a[0...i-1]有序區(qū)間中找一個(gè)合適的位置 for (j = i - 1; j >= 0; j--) if (a[j] < a[i]) break; //如找到了一個(gè)合適的位置 if (j != i - 1) { //將比a[i]大的數(shù)據(jù)向后移 int temp = a[i]; for (k = i - 1; k > j; k--) a[k + 1] = a[k]; //將a[i]放到正確位置上 a[k + 1] = temp; } } }