国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

排序算法之插入排序

2019-11-11 00:56:32
字體:
來源:轉載
供稿:網友

插入排序就像是 打撲克牌時對牌的點數進行排序。

假設要排序的數組有n+1個。a[0.....n ]

插入排序先把待排序的數組分成兩組,一組是已經排好序的,另一組是待排序的。

一開始 a[0]  自成一組(暫時當排好序的組),然后在剩下的a[1.....n]中每次取一個元素出來跟排好序的組比較

代碼如下:

#include<stdio.h>void insert(int a[],int len){	int i,j,k,t;	/*------主要部分------*/	/*從小到大排序*/ 	for(i = 0;i<len;i++)	{		/*這個for循環存在的目的就是為了當a[i]<a[j]時,		在已經排好序的組中,找出a[i](也就是新牌)適合存放的位置*/ 		for(j = i-1;j>=0;j--)		{			if(a[i]<=a[j])		//a[i]相當于待排序組新取出來比較的元素 				continue;			else if(a[i]>a[j])				break;		}				/*上一個for循環已經找出了在排好序的組中存放a[i]的位置 j 		接下來這部分就是要把位置 j 之前的元素都往前挪一個位置,因為		j 位置要存放 a[i]*/ 		if(j!=i-1)				//這一句if判斷其實可以不要,但會做無用功 		{			t = a[i];				for(k = i-1;k>j;k--)				a[k+1]=a[k];									a[k+1] = t;			}		/*------------------*/		}		for(i=0;i<len;i++)		PRintf("%d,",a[i]);}int main(){	int a[5]={1,3,4,5,0};	insert(a,5);	return 0;} 打印結果:0,1,3,4,5


上一篇:poj1026

下一篇:Lucene初探之如何創建索引

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西乌珠穆沁旗| 察隅县| 泰安市| 孟津县| 临澧县| 色达县| 襄樊市| 陈巴尔虎旗| 崇仁县| 石河子市| 栾川县| 长乐市| 佛冈县| 若尔盖县| 平阴县| 四平市| 乌恰县| 仲巴县| 锦屏县| 佛教| 微博| 静安区| 白城市| 鄂托克旗| 双峰县| 策勒县| 藁城市| 高青县| 山阳县| 胶南市| 岫岩| 塔城市| 大姚县| 额敏县| 犍为县| 舒城县| 屯昌县| 观塘区| 大名县| 安西县| 闻喜县|