欢迎来到天天文库
浏览记录
ID:26431057
大小:55.50 KB
页数:12页
时间:2018-11-26
《排序算法有很多》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、排序算法有很多,所以在特定情景中使用哪一种算法很重要。为了选择合适的算法,可以按照建议的顺序考虑以下标准: (1)执行时间 (2)存储空间 (3)编程工作 对于数据量较小的情形,(1)(2)差别不大,主要考虑(3);而对于数据量大的,(1)为首要。 撒旦主要排序法有: 一、冒泡(Bubble)排序——相邻交换 二、选择排序——每次最小/大排在相应的位置 三、插入排序——将下一个插入已排好的序列中 四、壳(Shell)排序——缩小增量 五、归并排序 六、快速排序 七、堆排序 八、拓扑排序 九、锦标赛排序 十、基数排序 一、冒泡(Bubble)排序 --------------
2、--------------------Code从小到大排序n个数------------------------------------ voidBubbleSortArray() { for(inti=1;ia[j+1])//比较交换相邻元素 { inttemp; temp=a[j];a[j]=a[j+1];a[j+1]=temp;
3、 } } } } -------------------------------------------------Code------------------------------------------------ 效率O(n²),适用于排序小列表。 二、选择排序 ----------------------------------Code从小到大排序n个数-------------------------------- voidSelectSortArray() { intmin_index; for(inti=0
4、;i5、--------------------------------Code----------------------------------------- 效率O(n²),适用于排序小的列表。 三、插入排序 --------------------------------------------Code从小到大排序n个数------------------------------------- voidInsertSortArray() { for(inti=1;i6、/temp标记为未排序第一个元素 intj=i-1; while(j>=0&&arr[j]>temp)/*将temp与已排序元素从小到大比较,寻找temp应插入的位置*/ { arr[j+1]=arr[j]; j--; } arr[j+1]=temp; } } ------------------------------Code-------------------------------------------------------------- 最佳效率O(n);最糟效率O(n²)与冒泡、选择相同,适用于排序小列表 若列表基本有序,则插入排序比冒泡、选择更有效率。 7、 四、壳(Shell)排序——缩小增量排序 -------------------------------------Code从小到大排序n个数------------------------------------- voidShellSortArray() { for(intincr=3;incr<0;incr--)//增量递减,以增量3,2,1为例 { for(intL=0;
5、--------------------------------Code----------------------------------------- 效率O(n²),适用于排序小的列表。 三、插入排序 --------------------------------------------Code从小到大排序n个数------------------------------------- voidInsertSortArray() { for(inti=1;i6、/temp标记为未排序第一个元素 intj=i-1; while(j>=0&&arr[j]>temp)/*将temp与已排序元素从小到大比较,寻找temp应插入的位置*/ { arr[j+1]=arr[j]; j--; } arr[j+1]=temp; } } ------------------------------Code-------------------------------------------------------------- 最佳效率O(n);最糟效率O(n²)与冒泡、选择相同,适用于排序小列表 若列表基本有序,则插入排序比冒泡、选择更有效率。 7、 四、壳(Shell)排序——缩小增量排序 -------------------------------------Code从小到大排序n个数------------------------------------- voidShellSortArray() { for(intincr=3;incr<0;incr--)//增量递减,以增量3,2,1为例 { for(intL=0;
6、/temp标记为未排序第一个元素 intj=i-1; while(j>=0&&arr[j]>temp)/*将temp与已排序元素从小到大比较,寻找temp应插入的位置*/ { arr[j+1]=arr[j]; j--; } arr[j+1]=temp; } } ------------------------------Code-------------------------------------------------------------- 最佳效率O(n);最糟效率O(n²)与冒泡、选择相同,适用于排序小列表 若列表基本有序,则插入排序比冒泡、选择更有效率。
7、 四、壳(Shell)排序——缩小增量排序 -------------------------------------Code从小到大排序n个数------------------------------------- voidShellSortArray() { for(intincr=3;incr<0;incr--)//增量递减,以增量3,2,1为例 { for(intL=0;
此文档下载收益归作者所有