- public void insertSort(int[] r) {
- int c, i, j;
-
- for (i = 1; i < r.length; i++) {
-
- c = r[i];
-
- j = i - 1;
-
- while (j >= 0 && r[j] > c) {
-
-
-
-
- r[j + 1] = r[j];
-
- j--;
- }
-
- r[j + 1] = c;
-
-
- for (int n = 0; n < r.length; n++) {
- System.out.print(r[n] + ",");
- }
- System.out.print("\n");
- }
- }
选择法:该方法通过遍历集合记录最小(大)元素的位置,一次遍历完后,再进行交换位置操作,类似冒泡,但在比较过程中,不进行交换操作,只记录元素位置。一次遍历只进行一次交换操作。这个对与交换次序比较费时的元素比较适合。这种排序法比冒泡法要城府要深的多,我先记住极端数据,待遍历数据完了之后, 我再处理,不像冒泡法那样只要比自己极端一点的就要处理,选择法只处理本身范围内的最极端数据.
java 代码
- public static void xuanze(int[] data) {
- int temp;
- for ( int i = 0; i < data.length; i++ ) {
- int lowIndex = i;
- for ( int j = data.length - 1; j > i; j-- ) {
- if (data[j] 〉 data[lowIndex]) {
- lowIndex = j;
- }
- }
- temp=data[i];
- data[i]=data[lowIndex];
- data[lowIndex]=temp;
- }
- }
Shell排序:
它是对插入排序的一种改进,是考虑将集合元素按照一定的基数划分成组去排序,让每一组在局部范围内先排成基本有序,最后在进行一次所有元素的插入排序。
java 代码
- public void sort(int[] data) {
- for( int i=data.length/2; i>2; i/=2 ) {
- for( int j=0; j
- insertSort(data,j,i);
- }
- }
- insertSort(data,0,1);
- }
-
- private void insertSort(int[] data, int start, int inc) {
- int temp;
- for( int i=start+inc; i
- for( int j=i; ( j>=inc ) && ( data[j] < data[j-inc]) ; j-=inc ) {
- temp=data[j];
- data[j]=data[j-inc]
- data[j-inc]=temp;
- }
- }
- }
参考:
http://student.zjzk.cn/course_ware/data_structure/web/main.htm 数据结构
http://student.zjzk.cn/course_ware/data_structure/web/paixu/paixu8.1.1.1.htm 排序
相关推荐
各种排序算法(插入排序、冒泡排序、二叉树排序、二路归并排序,选择排序、希尔排序、快速排序、堆排序)的简单排序
C++实现的各种排序算法的实验(源代码+实验报告),包括快速排序,堆排序等的实现
总结了各种排序算法,并用C++代码实现,并有演示
各种排序算法的实现
文档包含:排序算法:选择排序排序算法,插入排序排序算法,对半插入排序排序算法,冒泡排序排序算法,堆排序排序算法。
各种排序算法的稳定性和时间复杂度总结。希望大家能有所收获。
利用前端动画实现算法可视化,比如各种排序算法动画实现.zip
上述各种排序方法都是基于比较的内排序,其时间主要消耗在排序过程中进行的记录的比较和移动,因此,统计在相同数据状态下不同排序算法的比较次数和移动次数,即可实现比较各种排序算法的目的。 [思考题]如果测算每...
各种排序算法小结 各种排序算法小结 各种排序算法小结 真的不错
c#各种排序算法动态图形演示-数据结构经典算法动态演示
各种排序算法合集,每种排序算法都继承自一个基类,各种具体的算法各自实现
各种排序算法大全排序 各种排序算法大全全是c语言的,运行效率高。
排序算法包 各种排序算法 java源 堆排序,快排等各种排序算法
数据结构课程设计各种排序算法比较.doc
各种排序算法各种排序算法各种排序算法各种排序算法各种排序算法各种排序算法各种排序算法
随机产生n个1~99的正整数序列,分别采用直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序和二路归并排序对其进行递增排序
Java经典算法 ,各种排序算法 老掉牙 河內塔 費式數列 巴斯卡三角形 三色棋 老鼠走迷官(一) 老鼠走迷官(二) 騎士走棋盤 八個皇后 八枚銀幣 生命遊戲 字串核對 雙色、三色河內塔 背包問題(Knapsack...
此为一个利用Java语言编写的排序分析程序,程序中统计了各种排序算法(冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序、归并排序、基数排序)的分析,ppt中包含各种排序算法的分析,附上动画演示(来自...
各种排序算法效率分析比较及源代码 C语言实现 各种排序包括: 直接插入排序,折半插入排序,2—路插入排序和表插入排序;希尔排序和链式基数排序;起泡排序,快速排序,归并排序;简单选择排序,树形选择排序和堆...