欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java排序算法之插入法排序(insert sort),insertsort,//直接插入排序void

来源: javaer 分享于  点击 42430 次 点评:141

Java排序算法之插入法排序(insert sort),insertsort,//直接插入排序void


//直接插入排序void DirectInsertionSort(int* arr, int nLen){int i, j;for (i=1; i<nLen; i++){int temp = arr[i];for (j=i-1; j>=0; j--){if (temp < arr[j])arr[j+1] = arr[j];elsebreak;}if (j+1 != i)arr[j+1] = temp; //注意这里是j+1}}//折半插入排序void BinaryInsertionSort(int* arr, int nLen){int i, j;int low, mid, high;for (i=1; i<nLen; i++){int temp = arr[i];if (temp < arr[i-1])//这个判断可不要{low = 0;high = i-1;while (low <= high) //error: while( low < high) 注意这里还需要 等号{mid = (low+high)/2;if (temp < arr[mid]) high = mid - 1;else low = mid + 1;}//经过上面的折半查找插入位置后,这时插入位置为low或者high+1,这时low等于high+1//for (j=i-1; j>=high+1; j--)//{// arr[j+1] = arr[j];//}//arr[high+1] = temp;for (j=i-1; j>=low; j--) {arr[j+1] = arr[j];}arr[low] = temp; }}} 
相关栏目:

用户点评